2011-10-10 3 views
43

est possible dans mongo db pour sélectionner les documents de collection comme dans SQL:MongoDB sélectionnez où dans le tableau de _id?

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

ou si j'ai un _id array je dois sélectionner un par un, puis recomposer le array/object des résultats?

Répondre

76

facile :)

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

tirée de: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

Avons-nous encore des avantages d'indexation? Les ID dans ce cas sont passés en tant que chaînes simples ... –

+1

Vous le faites. Cependant, la complexité temporelle est linéaire (n), non logarithmique/constante. Sans indice, ce serait n^2. –

+0

@ PetrBrázdil cela signifie que si ma base de données a 1 million d'enregistrements, alors ... – diegoaguilar

2

list is a array of ids

Dans cette liste de codes est le tableau de ids dans la collecte de l'utilisateur

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

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