2011-10-10 19 views
43

è possibile in Mongo db per selezionare i documenti della collezione come in SQL:MongoDB seleziona dove nella matrice di _id?

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

o se ho un _id array devo selezionare uno ad uno e poi ricomporre l'array/object dei risultati?

risposta

76

facile :)

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

tratto da: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in

+0

Dobbiamo ancora ottenere benefici di indicizzazione? Gli ID in questo caso vengono passati come semplici stringhe ... –

+1

Sì. Tuttavia la complessità temporale è lineare (n), non logaritmica/costante. Senza indice sarebbe n^2. –

+0

@ PetrBrázdil significa che se il mio database ha ottenuto 1 milione di record, quindi ... – diegoaguilar

2

list is a array of ids

In questa lista codice è la matrice di ID nella collezione utente

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

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