On this page
$eq
在本页面
$eq
- 3.0 版中的新功能。
指定相等条件。 $eq运算符匹配字段值等于指定值的文档。
{ <field>: { $eq: <value> } }
$eq表达式等效于{ field: <value> }
。
Behavior
Comparison Order
有关不同 BSON 类型值的比较,请参见指定的 BSON 比较 Sequences。
匹配文档值
如果指定的<value>
是文档,则文档中字段的 Sequences 很重要。
匹配数组值
如果指定的<value>
是一个数组,则 MongoDB 会匹配<field>
完全匹配该数组或<field>
包含一个完全匹配该数组的元素的文档。元素的 Sequences 很重要。有关示例,请参见等于数组值。
Examples
以下示例使用以下文档查询inventory
集合:
{ _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
{ _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
{ _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
{ _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] }
{ _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }
等于指定值
下面的示例查询inventory
集合以选择qty
字段的值等于20
的所有文档:
db.inventory.find( { qty: { $eq: 20 } } )
该查询等效于:
db.inventory.find( { qty: 20 } )
这两个查询都匹配以下文档:
{ _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
{ _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }
嵌入式文档中的字段等于一个值
下面的示例查询inventory
集合以选择item
文档中name
字段的值等于"ab"
的所有文档。要在嵌入式文档中的字段上指定条件,请使用dot notation。
db.inventory.find( { "item.name": { $eq: "ab" } } )
该查询等效于:
db.inventory.find( { "item.name": "ab" } )
这两个查询都与以下文档匹配:
{ _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
See also
数组元素等于一个值
下面的示例查询inventory
集合以选择tags
数组包含值为"B"
[1]的元素的所有文档:
db.inventory.find( { tags: { $eq: "B" } } )
该查询等效于:
db.inventory.find( { tags: "B" } )
这两个查询都匹配以下文档:
{ _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
{ _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
{ _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
{ _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] }
See also
[1] | 该查询还将匹配tags 字段的值为字符串"B" 的文档。 |
等于数组值
下面的示例查询inventory
集合以选择tags
数组精确等于指定数组或tags
数组包含等于[ "A", "B" ]
元素的所有文档。
db.inventory.find( { tags: { $eq: [ "A", "B" ] } } )
该查询等效于:
db.inventory.find( { tags: [ "A", "B" ] } )
这两个查询都匹配以下文档:
{ _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
{ _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }