2011-10-10 59 views
43

有可能在蒙戈DB SQL中選擇收藏的文件,如:MongoDB選擇_id數組的位置?

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

,或者如果我有一個_id array我必須選擇一個接一個,然後重新結果array/object

回答

76

容易:)

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

摘自:http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

我們是否仍然得實惠索引?在這種情況下,ID作爲普通字符串傳遞... –

+1

你確實。但時間複雜度是線性的(n),而不是對數/常數。沒有索引,它會是n^2。 –

+0

@PetrBrázdil這意味着如果我的數據庫有一百萬條記錄,那麼... – diegoaguilar

2

list is a array of ids

在此代碼列表是IDS的用戶集合中的陣列

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

    .find({ _id: {$in : list}})