è possibile in mongo db selezionare i documenti della raccolta come in SQL:
SELECT * FROM collection WHERE _id IN (1,2,3,4);
o se ne ho uno _id arraydevo selezionarne uno per uno e poi ricomporre i array/objectrisultati?
Risposte:
Facile :)
db.collection.find( { _id : { $in : [1,2,3,4] } } );
tratto da: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24in
O(log(n) * m)dov'è nla dimensione della raccolta e mil numero di ID passati?
Perché mongodb utilizza bsone per bson è tipi di attributi importanti. e poiché _idè ObjectIdsi deve utilizzare in questo modo:
db.collection.find( { _id : { $in : [ObjectId('1'),ObjectId('2')] } } );
e in mongodb compassuso in questo modo:
{ "_id" : { $in : [ObjectId('1'),ObjectId('2')] } }
Nota: objectId nella stringa ha 24lunghezza.
Questo non è correlato alla query mongo. Conoscevo SQL e utilizzavo l'IDE di Studio3T per interrogare un database mongo usando SQL. Se sei uno come me, voglio sottolineare che il valore id deve essere typecast. Quindi la query sarà simile a:
SELECT _id from <collectionName>
WHERE _id = ObjectId("5883d387971bb840b7399130");