2011-10-10 24 views
43

es posible en db mongo para seleccionar los documentos de colección como en SQL:¿MongoDB selecciona dónde en array de _id?

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

o si tengo un _id array i debe seleccionar uno por uno y luego recomponer la array/object de los resultados?

Respuesta

76

fácil :)

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

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

+0

¿Todavía obtenemos beneficios de indexación? Los ID en ese caso se pasan como cadenas simples ... –

+1

Usted lo hace. Sin embargo, la complejidad del tiempo es lineal (n), no logarítmica/constante. Sin índice sería n^2. –

+0

@ PetrBrázdil eso significa que si mi base de datos obtuvo 1 millón de registros, entonces ... – diegoaguilar

2

list is a array of ids

En esta lista de códigos es la tabla de id de usuario en la recolección de

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

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