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

แบบสอบถาม MongoDB เพื่อแยกทั้งสองฟิลด์ด้วย FALSE


ใช้ตัวดำเนินการ $or พร้อมกับตัวดำเนินการ $expr สำหรับสิ่งนี้ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อนซึ่งหนึ่งในฟิลด์ isMarried มีค่าจริงเป็นเท็จ -

> db.orTwoFieldsDemo.insertOne({"isLiveInUS":true,"isMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdfd86abf3115999ed5120d")
}
> db.orTwoFieldsDemo.insertOne({"isLiveInUS":true,"isMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdfd876bf3115999ed5120e")
}
> db.orTwoFieldsDemo.insertOne({"isLiveInUS":false,"isMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cdfd87dbf3115999ed5120f")
}

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

> db.orTwoFieldsDemo.find();

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

{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }
{ "_id" : ObjectId("5cdfd87dbf3115999ed5120f"), "isLiveInUS" : false, "isMarried" : false }

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

> db.orTwoFieldsDemo.find({ $expr: { $or: [ "$isLiveInUS", "$isMarried" ] } });

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

{ "_id" : ObjectId("5cdfd86abf3115999ed5120d"), "isLiveInUS" : true, "isMarried" : false }
{ "_id" : ObjectId("5cdfd876bf3115999ed5120e"), "isLiveInUS" : true, "isMarried" : true }