Zdecydowanie skorzystałbym z zapytania $in i dostarczenia tablicy identyfikatorów _id.
Przykład:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
Dlaczego?
- Jeśli wykonujesz pętlę, istnieje pewna ilość konfiguracji i usuwania dla każdego zapytania, tworzącego i wyczerpującego kursory, które generowałyby obciążenie.
- Jeżeli nie robisz tego na komputerze lokalnym, dla każdego żądania tworzy się również obciążenie tcp/ip. Lokalnie możesz użyć gniazd domeny.
- Istnieje indeks na „_id” tworzony domyślnie i zbieranie grupy dokumentów do zwrócenia w żądaniu wsadowym powinno być niezwykle szybkie, więc nie ma potrzeby dzielenia tego na mniejsze zapytania.
Istnieje dodatkowa dokumentacja, jeśli chcesz to sprawdzić.