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

แบบสอบถาม MongoDB เพื่อดึงเอกสารที่ไม่มีฟิลด์เฉพาะ?


หากต้องการตรวจสอบการมีอยู่ ให้ใช้ $exists ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo234.insertOne({"FirstName":"Chris","LastName":"Brown","Age":24});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e418a50f4cebbeaebec5148")
}
> db.demo234.insertOne({"FirstName":"David","LastName":"Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e418a5ff4cebbeaebec5149")
}
> db.demo234.insertOne({"FirstName":"John","LastName":"Smith",Age:34});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e418a70f4cebbeaebec514a")
}

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

> db.demo234.find();

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

{ "_id" : ObjectId("5e418a50f4cebbeaebec5148"), "FirstName" : "Chris", "LastName" : "Brown", "Age" : 24 }
{ "_id" : ObjectId("5e418a5ff4cebbeaebec5149"), "FirstName" : "David", "LastName" : "Miller" }
{ "_id" : ObjectId("5e418a70f4cebbeaebec514a"), "FirstName" : "John", "LastName" : "Smith", "Age" : 34 }

ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบการมีอยู่และดึงเอกสารโดยไม่มีฟิลด์ "อายุ" -

> var iterator = db.demo234.find({"Age":{$exists:false}},{"_id":0});
> iterator.forEach(function(d)
...{
...   printjson(d);
...})

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

{ "FirstName" : "David", "LastName" : "Miller" }