$eq

在本页面

  • 行为

  • 例子

  • $eq

    • version 3.0 中的新内容。

指定相等条件。 $eq operator 匹配字段的 value 等于指定的 value 的文档。

{ <field>: { $eq: <value> } }

$eq表达式相当于{ field: <value> }

行为

比较 Order

有关不同 BSON 类型值的比较,请参阅指定的 BSON 比较 order。

Match a Document Value

如果指定的<value>是文档,则文档中字段的 order 很重要。

Match Array Value

如果指定的<value>是 array,则 MongoDB 匹配<field>与 array 完全匹配的文档,或者<field>包含与 array 完全匹配的元素。元素的顺序很重要。对于 example,请参阅等于 Array Value。

例子

以下示例使用以下文档查询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" ] }

等于指定的 Value

以下 example 查询inventory集合以选择qty字段的 value 等于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" ] }

嵌入式文档中的字段等于 Value

以下 example 查询inventory集合以选择item文档中name字段的 value 等于"ab"的所有文档。要在嵌入文档中的字段上指定条件,请使用点符号。

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" ] }

也可以看看
查询嵌入式文档

Array Element 等于 Value

以下 example 查询inventory集合以选择tags array 包含 value "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" ] }

也可以看看
$elemMatch,查询数组

[1]该查询还将匹配tags字段的 value 为 string "B"的文档。

等于 Array Value

以下 example 查询inventory集合以选择tags array 完全等于指定的 array 的所有文档,或者tags array 包含一个等于 array [ "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" ] }