MongoDB select where in array of _id?

is possible in mongo db to select collection's documents like in SQL :

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

or if i have a _id array i must select one by one and then recompose the array/object of results?

Answers:

Answer

Easy :)

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

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

Answer

list is a array of ids

In this code list is the array of ids in user collection

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

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

An equivalent SQL would be:

SELECT _id from <collectionName>
WHERE _id = ObjectId("5883d387971bb840b7399130");
Answer

Because mongodb uses bson and for bson is important attribute types. and because _id is ObjectId you must use like this:

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

and in mongodb compass use like this:

{ "_id" : { $in : [ObjectId('1'),ObjectId('2')] } }

Note: objectId in string has 24 length.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.