Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

วิธีการเลือกเอกสาร MongoDB ที่ไม่มีฟิลด์เฉพาะ?


ตรวจสอบฟิลด์เฉพาะโดยใช้ MongoDB $exists หากไม่มีฟิลด์นั้นในเอกสาร คุณจะต้องแสดงเอกสารเดียวกันกับ find()

ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo612.insertOne({id:1,"Info":[{Name:"Chris",Age:21},{Name:"David"}]});{
   "acknowledged" : true, "insertedId" : ObjectId("5e987372f6b89257f5584d87")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo612.find().pretty();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{
   "_id" : ObjectId("5e987372f6b89257f5584d87"),
   "id" : 1,
   "Info" : [
      {
         "Name" : "Chris",
         "Age" : 21
      },
      {
         "Name" : "David"
      }
   ]
}

ต่อไปนี้เป็นแบบสอบถามเพื่อดึงเอกสาร MongoDB ที่ไม่ประกอบด้วยฟิลด์เฉพาะ -

> db.demo612.aggregate({$unwind: "$Info"},
... {$match: {"Info.Age":{$exists: false}}},
... {$project: {"Info.Name": 1}})

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e987372f6b89257f5584d87"), "Info" : { "Name" : "David" } }