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

จะตรวจสอบว่าฟิลด์ใน MongoDB เป็น [] หรือ {} ได้อย่างไร


ในการตรวจสอบว่าฟิลด์ใน MongoDB เป็น [] หรือ {} คุณสามารถใช้ไวยากรณ์ต่อไปนี้ -

db.yourCollectionName.find({
   "yourOuterFieldName": { "$gt": {} },
   "yourOuterFieldName.0": { "$exists": false }
});

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

> db.checkFieldDemo.insert([
...   { _id: 1010, StudentDetails: {} },
...   { _id: 1011, StudentDetails: [ { StudentId: 1 } ] },
...   { _id: 1012, StudentDetails: [ {} ] },
...   { _id: 1013 },
...   { _id: 1014, StudentDetails: null},
...   { _id: 1015, StudentDetails: { StudentId: 1 } }
... ]);
BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 6,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

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

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

{ "_id" : 1010, "StudentDetails" : { } }
{ "_id" : 1011, "StudentDetails" : [ { "StudentId" : 1 } ] }
{ "_id" : 1012, "StudentDetails" : [ { } ] }
{ "_id" : 1013 }
{ "_id" : 1014, "StudentDetails" : null }
{ "_id" : 1015, "StudentDetails" : { "StudentId" : 1 } }

ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบว่าเขตข้อมูลใน MongoDB เป็น [] หรือ {} −

> db.checkFieldDemo.find({
...   "StudentDetails": { "$gt": {} },
...   "StudentDetails.0": { "$exists": false }
... });

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

{ "_id" : 1015, "StudentDetails" : { "StudentId" : 1 } }