Ik zou zeker de $in-query gebruiken en een reeks _ids opgeven.
Voorbeeld:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
Waarom?
- Als je een lus maakt, is er een bepaalde hoeveelheid setup en demontage voor elke query die cursors creëert en uitput, wat overhead zou veroorzaken.
- Als je dit niet op een lokale computer doet, creëert het ook tcp/ip-overhead voor elk verzoek. Lokaal zou je domein sockets kunnen gebruiken.
- Er is standaard een index op "_id" gemaakt en het verzamelen van een groep documenten om terug te sturen in een batchverzoek zou extreem snel moeten gaan, dus het is niet nodig om dit op te splitsen in kleinere zoekopdrachten.
Er is hier wat aanvullende documentatie als je het wilt bekijken.