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

วิธี Query ด้วยรายการ _id หลายค่าใน MongoDB

ใช้ $in Operator Query หลาย _id พร้อมกัน

สร้างข้อมูลตัวอย่าง

> db.findListOfIdsDemo.insertOne({"StudentName":"Carol","StudentAge":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ecadd2f684a30fbdfd575") }
> db.findListOfIdsDemo.insertOne({"StudentName":"Bob","StudentAge":25});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ecae42f684a30fbdfd576") }
> db.findListOfIdsDemo.insertOne({"StudentName":"David","StudentAge":22});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ecaed2f684a30fbdfd577") }
> db.findListOfIdsDemo.insertOne({"StudentName":"John","StudentAge":20});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ecaf82f684a30fbdfd578") }
> db.findListOfIdsDemo.insertOne({"StudentName":"Mike","StudentAge":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8ecb092f684a30fbdfd579") }

Query ด้วย Array ของ _id

> var listOfIds = ['5c8ecae42f684a30fbdfd576', '5c8ecaf82f684a30fbdfd578'];
> var documentIds = listOfIds.map(function(myId) { return ObjectId(myId); });
> db.findListOfIdsDemo.find({_id: {$in: documentIds }}).pretty();
{ "_id" : ObjectId("5c8ecae42f684a30fbdfd576"), "StudentName" : "Bob", "StudentAge" : 25 }
{ "_id" : ObjectId("5c8ecaf82f684a30fbdfd578"), "StudentName" : "John", "StudentAge" : 20 }

แปลง String _id เป็น ObjectId ก่อน แล้วใช้ $in Query หลายค่าพร้อมกัน