2011-10-25 34 views
6

Giả sử bạn có một danh sách các id có thể chứa tới hàng nghìn id-s cho các tài liệu bên trong cơ sở dữ liệu. Cách tốt nhất để lấy lại các tài liệu đó là gì?Truy vấn MongoDB cho các tài liệu có id nằm trong danh sách

Tôi có nên gọi truy vấn cho mỗi người trong số họ hay tôi nên chỉ định truy vấn OR khổng lồ? có thể có cái gì đó cách tốt hơn tôi không biết

Trả lời

6

Có, $ trong:

db.co.find({_id:{$in:[id1, id2, id3, .., idN]}}) 
+1

Is it OK để có hàng ngàn các giá trị có ? –

+0

Có, không có giới hạn thực tế. Tôi tin rằng các truy vấn như một toàn thể không nên vượt quá 16Mb nhưng bạn sẽ không bao giờ đạt đến giới hạn đó. Và ngay cả khi bạn làm bạn có thể bó nó. –

+0

Bạn có nghĩa là chuỗi truy vấn, phải không? –

8

Trong C# mã, $in:

var ids = new int[] {1, 2, 3, 4, 5}; 
var query = Query.In("name", BsonArray.Create(ids)); 
var items = collection.Find(query); 
Các vấn đề liên quan