$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
](or.html#_S_or) operator, choose the $in
operator rather than the
[$or
](or.html#_S_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()
](db.collection.update.html#db.collection.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"]
.
也可以参考
[find()
](db.collection.find.html#db.collection.find),
[update()
](db.collection.update.html#db.collection.update),
[$or
](or.html#_S_or), [$set
](set.html#_S_set).