Tôi chắc chắn sẽ sử dụng truy vấn $ in và cung cấp một loạt các _ids.
Ví dụ:
db.collection.find({
"key": {
"$in": [
ObjectId("xxx"),
ObjectId("yyy"),
ObjectId("zzz")
]
}
})
Tại sao?
- Nếu bạn lặp lại, sẽ có một số lượng thiết lập và gỡ bỏ nhất định cho mỗi lần tạo truy vấn và làm hết con trỏ, điều này sẽ tạo ra chi phí cao.
- Nếu bạn không thực hiện việc này trên máy cục bộ, nó cũng tạo chi phí tcp / ip cho mọi yêu cầu. Tại địa phương, bạn có thể sử dụng các ổ cắm miền.
- Có một chỉ mục trên "_id" được tạo theo mặc định và việc thu thập một nhóm tài liệu để trả lại trong một yêu cầu hàng loạt sẽ cực kỳ nhanh chóng, vì vậy không cần phải chia nó thành các truy vấn nhỏ hơn.
Có một số tài liệu bổ sung ở đây nếu bạn muốn xem.