Search in the Specified Array in MongoDB

The $in operator searches within the array you’ve provided. For example, if you give an array and want to search one or more matched elements in a MongoDB collection, then you can use $in.

Use the $in Operator to Search in the Specified Array in MongoDB

The $in operator finds documents where a field’s value equals any value in the provided array. Use the following prototype to specify an $in expression.

{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }

For example, let’s say you have the following collection.

{
    _id:1,
    name: "John",
    age: 30
},
{
    _id:2,
    name: "Alex",
    age: 23
},
{
    _id:3,
    name: "Murphy",
    age: 25
},
{
    _id:4,
    name: "Alice",
    age: 28
},

Now, you want to see the documents for _id = 2,3,4. So, the command will be like the following.

Final Result: Search filter in React
db.collection.find( {_id: { $in: [2, 3, 4] } } );

Or, you can also send an array as the parameter. When you’re developing apps or websites, then it will be useful.

let list=[2, 3, 4]
db.collection.find( { _id:{ $in: list} } )

While using JavaScript promises, this approach is useful.

To avoid error, you should be aware of the ObjectId. _id is by default provided by MongoDB, and the type of _id is ObjectId.

So, while passing the array in the parameter of $in, it’s better to convert each integer id to ObjectId like the following.

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

This approach is more accurate because you provide the exact data type of the _id through the parameter. $in can be used in updateMany, updateOne, deleteOne, deleteMany operations as well.

To know more about the $in operator, visit the official page here.

Write for us
DelftStack articles are written by software geeks like you. If you also would like to contribute to DelftStack by writing paid articles, you can check the write for us page.