ใช้ตัวดำเนินการ $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 }