$nin
¶语法:{ field: { $nin: [ <value1>, <value2> ... <valueN> ]} }
$nin
选择以下文档:
field
值不在指定的范围内array
或field
不存在。有关不同BSON类型值的比较,请参见指定的BSON比较顺序。
考虑以下查询:
此查询将选择的所有文件inventory
,其中收集qty
字段值确实不等于5
也没有
15
。所选文档将包括那些不包含该qty
字段的文档
。
如果field
持有的阵列,则$nin
操作者选择其的文件field
持有与阵列没有
元素等于指定数组中的值(例如<value1>
,
<value2>
等)。
考虑以下查询:
此update()
操作将sale
在inventory
集合中设置字段值,在该集合中,该
tags
字段包含一个数组,其中没有元素与该数组中的元素匹配,或者该文档不包含该字段。["appliances", "school"]
tags
不等式操作者$nin
是不非常有选择性的,因为它往往是指数的很大一部分相匹配。结果,在许多情况下,$nin
带有索引的查询的性能可能不比$nin
必须扫描集合中所有文档的查询更好。另请参阅查询选择性。