Javascript 通过_id数组的MongoDB请求(可能吗?)

Javascript 通过_id数组的MongoDB请求(可能吗?),javascript,mongodb,mongodb-.net-driver,Javascript,Mongodb,Mongodb .net Driver,例如,我有n文档: { _id : 1 } { _id : 2 } { _id : 3 } ... { _id : n } 通过某种逻辑,我得到了m\u id的数组:[1,30,500,1001,…,I] 是否可以使用_id数组发出一个请求来检索这些m文档的游标?我不想单独提出以下要求: db.things.findOne({u id:1}) db.things.findOne({u id:30}) db.things.findOne({u id:500}) db.things.findOne

例如,我有n文档:

{ _id : 1 }
{ _id : 2 }
{ _id : 3 }
...
{ _id : n }
通过某种逻辑,我得到了m\u id的数组:[1,30,500,1001,…,I]

是否可以使用_id数组发出一个请求来检索这些m文档的游标?我不想单独提出以下要求:

db.things.findOne({u id:1})

db.things.findOne({u id:30})

db.things.findOne({u id:500})

db.things.findOne({u id:1001})

db.things.findOne({u id:i})

如果可能的话,如何在JavaScript Shell和官方C#driver上实现这一点

谢谢你

要使用C#驱动程序执行此操作:

c = db.things.find({_id:{$in:[1,30,500,1001,...,i]}})
要使用C#Driver执行此操作:


这不仅是正确的,而且非常有效。请注意,使用带有
$in
的大型数组实际上相当于运行许多独立查询,如果列表很长,则速度仍然会很慢。由于mongo和客户端之间的带宽使用减少,因此速度始终会更快。但你是对的$in有一个O(n)性能配置文件,这意味着它将随着n的增加而线性变慢。这不仅是正确的,而且非常有效。请注意,在
中使用带有
$的大型数组实际上相当于运行许多独立查询,如果列表很长,速度仍然会很慢。由于mongo和客户端之间的带宽使用减少,速度总是会更快。但你是对的$in有一个O(n)性能曲线,这意味着它将随着n的增加而线性变慢。
var documentIds = new BsonValue[] { ObjectId.Parse("id1"),  ObjectId.Parse("id2")}; 
var query = Query.In("_id", documentIds);