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

คิวรี่ MongoDB กรองเอกสารที่ไม่ใช่ทั้งคู่เป็น FALSE

ใช้ $expr ร่วมกับ $or เพื่อกรองเอกสารที่ไม่ใช่ทั้งสองฟิลด์เป็น false พร้อมกัน เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:

> 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") }

แสดงเอกสารทั้งหมด:

> db.orTwoFieldsDemo.find();

คิวรี่กรองเอกสารที่ ไม่ใช่ ทั้ง isLiveInUS และ isMarried เป็น false (คืออย่างน้อยหนึ่งฟิลด์เป็น true):

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

คำอธิบาย: $expr อนุญาตให้ใช้ตัวดำเนินการ aggregation (เช่น $or) ภายใน find() โดย $or: ["$field1", "$field2"] จะเป็นจริงถ้าอย่างน้อยหนึ่งฟิลด์เป็น true เอกสารที่ทั้งคู่เป็น false จะถูกกรองออก