如何在 MongoDB 中按 ID 列表查找?
你可以在 MongoDB 中使用 $in 操作符按 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") }
在集合中显示所有文档并使用 find() 方法。查询如下 −
> db.findListOfIdsDemo.find().pretty();
输出如下 −
{ "_id" : ObjectId("5c8ecadd2f684a30fbdfd575"), "StudentName" : "Carol", "StudentAge" : 21 } { "_id" : ObjectId("5c8ecae42f684a30fbdfd576"), "StudentName" : "Bob", "StudentAge" : 25 } { "_id" : ObjectId("5c8ecaed2f684a30fbdfd577"), "StudentName" : "David", "StudentAge" : 22 } { "_id" : ObjectId("5c8ecaf82f684a30fbdfd578"), "StudentName" : "John", "StudentAge" : 20 } { "_id" : ObjectId("5c8ecb092f684a30fbdfd579"), "StudentName" : "Mike", "StudentAge" : 23 }
以下是按 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 }
广告