Запрос MongoDB по массиву _ids (возможно ли это?) - PullRequest
1 голос
/ 11 января 2012

Например, у меня есть n документов:

{ _id : 1 }
{ _id : 2 }
{ _id : 3 }
...
{ _id : n }

По некоторой логике я получил массив m _ids: [1, 30, 500, 1001,..., i];

Можно ли сделать ОДИН запрос, используя массив _ids для получения курсора этих m документов?Я не хочу делать отдельные запросы, такие как:

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 #?

Спасибо !!!

Ответы [ 2 ]

8 голосов
/ 11 января 2012
c = db.things.find({_id:{$in:[1,30,500,1001,...,i]}})
0 голосов
/ 23 мая 2013

И сделать это с драйвером C #:

var documentIds = new BsonValue[] { ObjectId.Parse("id1"),  ObjectId.Parse("id2")}; 
var query = Query.In("_id", documentIds); 
...