2011-10-10 35 views
43

là có thể trong Mongo db để chọn chứng từ nhờ thu của như trong SQL:MongoDB chọn vị trí trong mảng _id?

SELECT * FROM collection WHERE _id IN (1,2,3,4); 

hoặc nếu tôi có một _id array tôi phải chọn từng người một và sau đó recompose các array/object kết quả?

Trả lời

76

dễ dàng :)

db.collection.find({ _id : { $in : [1,2,3,4] } }); 

lấy từ: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

Chúng ta vẫn nhận được lợi ích lập chỉ mục? ID trong trường hợp đó được chuyển thành các chuỗi đơn giản ... –

+1

Bạn thực hiện. Tuy nhiên độ phức tạp thời gian là tuyến tính (n), không phải logarit/hằng số. Không có chỉ mục, nó sẽ là n^2. –

+0

@ PetrBrázdil có nghĩa là nếu cơ sở dữ liệu của tôi có 1 triệu bản ghi, thì ... – diegoaguilar

2

list is a array of ids

Trong danh sách mã này là mảng id trong bộ sưu tập sử dụng

var list = ["5883d387971bb840b7399130","5883d389971bb840b7399131","5883d38a971bb840b7399132"] 

    .find({ _id: {$in : list}}) 
Các vấn đề liên quan