例如,我有 n 文件:
{ _id : 1 }
{ _id : 2 }
{ _id : 3 }
...
{ _id : n }
根据某种逻辑,我得到了 m _ids的数组:[1,30,500,1001,...,i];
是否可以使用_ids数组发出一个请求来检索这些 m 文档的Cursor?我不想发出像:
这样的单独请求 db.things.findOne({_id:1});
db.things.findOne({_id:30});
db.things.findOne({_id:500});
db.things.findOne({_id:1001});
...
db.things.findOne({_id:i});
如果有可能,那么在JavaScript Shell和官方C#驱动程序上如何做到这一点?
谢谢!!!
答案 0 :(得分:8)
c = db.things.find({_id:{$in:[1,30,500,1001,...,i]}})
答案 1 :(得分:0)
使用C#驱动程序执行此操作:
var documentIds = new BsonValue[] { ObjectId.Parse("id1"), ObjectId.Parse("id2")};
var query = Query.In("_id", documentIds);