Určitě bych použil dotaz $in a poskytl pole _id.
Příklad:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
Proč?
- Pokud zacyklíte, existuje určité množství nastavení a odstranění pro každý dotaz, který vytváří a vyčerpává kurzory, což by vytvořilo režii.
- Pokud to neděláte na místním počítači, vytváří také režii tcp/ip pro každý požadavek. Lokálně můžete použít doménové sokety.
- Na "_id" je ve výchozím nastavení vytvořen index a shromažďování skupiny dokumentů, které mají být vráceny v dávkovém požadavku, by mělo být extrémně rychlé, takže není potřeba je rozdělovat na menší dotazy.
Pokud si ji chcete prohlédnout, je zde nějaká další dokumentace.