2011-10-10 20 views
43

jest możliwe w Mongo db wybrać dokumentów kolekcji, podobnie jak w SQL:MongoDB wybierz gdzie w tablicy _id?

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

czy mam _id array muszę wybrać jeden po drugim, a następnie ponownie skomponuj array/object wyników?

Odpowiedz

76

Łatwy :)

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

zaczerpnięte z: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

Czy nadal uzyskać korzyści indeksowania? Identyfikatory w tym przypadku są przekazywane jako zwykłe ciągi znaków ... –

+1

Ty to robisz. Jednak złożoność czasu jest liniowa (n), a nie logarytmiczna/stała. Bez indeksu byłoby to n^2. –

+0

@ PetrBrázdil oznacza, że ​​jeśli moja baza danych ma 1 milion rekordów, to ... – diegoaguilar

2

list is a array of ids

W tej listy kodów jest tablica identyfikatorów w kolekcji użytkownika

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

    .find({ _id: {$in : list}}) 
Powiązane problemy