Saya pasti akan menggunakan kueri $in dan menyediakan array _id.
Contoh:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
Mengapa?
- Jika Anda mengulang, ada sejumlah penyiapan dan pembongkaran untuk setiap kueri yang membuat dan melelahkan kursor yang akan membuat overhead.
- Jika Anda tidak melakukan ini pada mesin lokal, ini juga menciptakan overhead tcp/ip untuk setiap permintaan. Secara lokal Anda dapat menggunakan soket domain.
- Ada indeks pada "_id" yang dibuat secara default dan pengumpulan sekelompok dokumen untuk dikembalikan dalam permintaan batch harus sangat cepat sehingga tidak perlu memecahnya menjadi kueri yang lebih kecil.
Ada beberapa dokumentasi tambahan di sini jika Anda ingin melihatnya.