Определено ще използвам заявката $in и предоставям масив от _ids.
Пример:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
Защо?
- Ако зациклите, има определено количество настройка и демонтаж за всяка заявка, създаваща и изтощаващи курсори, което би довело до допълнителни разходи.
- Ако не правите това на локална машина, това също създава tcp/ip допълнителни разходи за всяка заявка. Локално можете да използвате домейн сокети.
- Има индекс за „_id“, създаден по подразбиране и събирането на група документи за връщане в пакетна заявка трябва да бъде изключително бързо, така че няма нужда да го разделяте на по-малки заявки.
Тук има допълнителна документация, ако искате да я проверите.