2011-10-10 64 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}})