2011-10-10 15 views
43

mongo db'de koleksiyonun belgelerini SQL gibi seçmek mümkün:MongoDB, _id dizisinde nerede seçilir?

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

veya _id array varsa, tek tek seçmeli ve sonra array/object sonuçlarını yeniden derlemeliyim?

cevap

76

Kolay :)

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

alınan: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

biz hala yararları alır mıyım indeksleme? Bu durumda kimlikler düz dizeler olarak iletilir ... –

+1

Yaparsınız. Ancak zaman karmaşıklığı doğrusaldır (n), logaritmik/sabit değildir. İndeks olmadan n^2 olur. –

+0

@ PetrBrázdil, veritabanımın 1 milyon kayıt alması anlamına geliyorsa, o zaman ... – diegoaguilar

2
bu kod listesinde

list is a array of ids

kullanıcı koleksiyonunda kimlikleri dizidir

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

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