$in

$in

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

$in selects the documents where the field value equals any value in the specified array (e.g. <value1>, <value2>, etc.)

Consider the following example:

db.inventory.find( { qty: { $in: [ 5, 15 ] } } )

This query selects all documents in the inventory collection where the qty field value is either 5 or 15. Although you can express this query using the $or operator, choose the $in operator rather than the $or operator when performing equality checks on the same field.

If the field holds an array, then the $in operator selects the documents whose field holds an array that contains at least one element that matches a value in the specified array (e.g. <value1>, <value2>, etc.)

Consider the following example:

db.inventory.update(
                     { tags: { $in: ["appliances", "school"] } },
                     { $set: { sale:true } }
                   )

This update() operation will set the sale field value in the inventory collection where the tags field holds an array with at least one element matching an element in the array ["appliances", "school"].

Note

When using two or more $in expressions, the product of the number of distinct elements in the $in arrays must be less than 4000000. Otherwise, MongoDB will throw an exception of "combinatorial limit of $in partitioning of result set exceeded".

See also

find(), update(), $or, $set.