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

แบบสอบถาม MongoDB สำหรับการจับคู่แบบตรงทั้งหมดในหลายฟิลด์เอกสาร


สำหรับการจับคู่แบบตรงทั้งหมด ตั้งค่าที่จะจับคู่ภายใน MongoDB $in() ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.demo422.insertOne({"Name":"Chris","Marks":34});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e73a4059822da45b30346e1")
}
> db.demo422.insertOne({"Name":"Chris","Marks":56});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e73a40a9822da45b30346e2")
}
> db.demo422.insertOne({"Name":"David","Marks":78});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e73a4149822da45b30346e3")
}
> db.demo422.insertOne({"Name":"Sam","Marks":45});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e73a41e9822da45b30346e4")
}
> db.demo422.insertOne({"Name":"David","Marks":89});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e73a4239822da45b30346e5")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo422.find();

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

{ "_id" : ObjectId("5e73a4059822da45b30346e1"), "Name" : "Chris", "Marks" : 34 }
{ "_id" : ObjectId("5e73a40a9822da45b30346e2"), "Name" : "Chris", "Marks" : 56 }
{ "_id" : ObjectId("5e73a4149822da45b30346e3"), "Name" : "David", "Marks" : 78 }
{ "_id" : ObjectId("5e73a41e9822da45b30346e4"), "Name" : "Sam", "Marks" : 45 }
{ "_id" : ObjectId("5e73a4239822da45b30346e5"), "Name" : "David", "Marks" : 89 }

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

> db.demo422.find({'$and': [{'Name': {'$in': ['Chris', 'David']}, 'Marks': {'$in': [34,89]}}]});

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

{ "_id" : ObjectId("5e73a4059822da45b30346e1"), "Name" : "Chris", "Marks" : 34 }
{ "_id" : ObjectId("5e73a4239822da45b30346e5"), "Name" : "David", "Marks" : 89 }