2011-10-10 1 views
43

はmongo dbでSQLのようなコレクションのドキュメントを選択することができます:MongoDBは_idの配列内のどこを選択しますか?

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

または_id arrayを持っている場合は、1つずつ選択してからarray/objectの結果を再構成する必要がありますか?

答えて

76

簡単:)から取ら

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

:このコードリストでhttp://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

におけるIDの配列である我々はまだ利益を得ますかインデックスの作成?その場合のIDはプレーンストリングとして渡されます... –

+1

あなたは行います。しかし、時間の複雑さは線形(n)であり、対数/定数ではありません。インデックスなしの場合、n^2になります。 –

+0

@PetrBrázdilつまり、データベースに100万レコードがある場合は... – diegoaguilar

2

list is a array of ids

は、ユーザーコレクション

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

    .find({ _id: {$in : list}}) 
関連する問題