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

ค้นหาการจับคู่ที่แน่นอนในอาร์เรย์โดยไม่ต้องใช้ตัวดำเนินการ $elemMatch ใน MongoDB หรือไม่


ใช้ตัวดำเนินการ $eq แทน ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.equalDemo.insertOne({_id:1,"StudentFriendNames":["John","Carol","Sam"]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.equalDemo.insertOne({_id:2,"StudentFriendNames":null});
{ "acknowledged" : true, "insertedId" : 2 }
> db.equalDemo.insertOne({_id:3,"StudentFriendNames":["Carol"]});
{ "acknowledged" : true, "insertedId" : 3 }
> db.equalDemo.insertOne({_id:4,"StudentFriendNames":["Sam"]});
{ "acknowledged" : true, "insertedId" : 4 }

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

> db.equalDemo.find();

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

{ "_id" : 1, "StudentFriendNames" : [ "John", "Carol", "Sam" ] }
{ "_id" : 2, "StudentFriendNames" : null }
{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }
{ "_id" : 4, "StudentFriendNames" : [ "Sam" ] }

ต่อไปนี้เป็นแบบสอบถามเพื่อให้ได้ค่าที่ตรงกันทั้งหมดโดยใช้ $eq −

> db.equalDemo.find({"StudentFriendNames":{$eq:["Carol"]}});

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

{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }