โอเปอเรเตอร์ $in ใช้ค้นหาเอกสารที่ฟิลด์อาร์เรย์มีค่าตรงกับรายการที่กำหนดอย่างน้อย 1 ค่า
> db.demo520.insertOne({"ListOfName": ["John", "Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e899fb4b3fbf26334ef6114") }
> db.demo520.insertOne({"ListOfName": ["Chris", "David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e899fbfb3fbf26334ef6115") }
> db.demo520.insertOne({"ListOfName": ["Mike", "Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e899fc7b3fbf26334ef6116") }
แสดงข้อมูล:
> db.demo520.find();
{ "_id" : ObjectId("5e899fb4b3fbf26334ef6114"), "ListOfName" : [ "John", "Bob" ] }
{ "_id" : ObjectId("5e899fbfb3fbf26334ef6115"), "ListOfName" : [ "Chris", "David" ] }
{ "_id" : ObjectId("5e899fc7b3fbf26334ef6116"), "ListOfName" : [ "Mike", "Bob" ] }
คิวรีค้นหาที่มี "Bob" หรือ "Mike" ใน ListOfName
> db.demo520.find({"ListOfName": {$in: ["Bob", "Mike"]}});
ผลลัพธ์ - พบ 2 เอกสาร:
ความแตกต่าง $in vs $all
| โอเปอเรเตอร์ | ความหมาย |
|---|---|
$in | ตรงกับ อย่างน้อย 1 ค่า ในอาร์เรย์ (OR logic) |
$all | ต้องมี ทุกค่า ในอาร์เรย์ (AND logic) |