$eq

    在本页面

    $eq

    指定相等条件。$eq操作符匹配字段的值等于指定值的文档。

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

    $eq表达式等效于。{ field: <value> }

    行为

    比较顺序

    有关不同BSON类型值的比较,请参见指定的BSON比较顺序。

    匹配一个文献价值

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

    匹配一个数组值

    如果指定的<value>是数组,则MongoDB将<field>匹配与该数组完全匹配的文档,或者<field> 包含包含与该数组完全匹配的元素的文档。元素的顺序很重要。有关示例,请参见等于数组值。

    例子

    以下示例inventory使用以下文档查询集合:

    1. { _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
    2. { _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
    3. { _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
    4. { _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] }
    5. { _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }

    等于指定值

    下面的示例查询inventory集合以选择qty字段值等于的所有文档20

    1. db.inventory.find( { qty: { $eq: 20 } } )

    该查询等效于:

    1. db.inventory.find( { qty: 20 } )

    这两个查询都匹配以下文档:

    1. { _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
    2. { _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }

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

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

    1. db.inventory.find( { "item.name": { $eq: "ab" } } )

    该查询等效于:

    1. db.inventory.find( { "item.name": "ab" } )

    这两个查询都与以下文档匹配:

    1. { _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }

    也可以看看

    查询嵌入式文档

    数组元素等于一个值

    下面的示例查询inventory集合以选择tags数组包含值"B" [1]的元素的所有文档:

    1. db.inventory.find( { tags: { $eq: "B" } } )

    该查询等效于:

    1. db.inventory.find( { tags: "B" } )

    这两个查询都匹配以下文档:

    1. { _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] }
    2. { _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] }
    3. { _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
    4. { _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] }

    也可以看看

    $elemMatch,查询数组

    [1] 该查询还将匹配文档,其中tags字段的值为字符串"B"

    等于一个数组值

    以下示例查询inventory集合,以选择该tags数组与指定数组完全相等或该tags数组包含等于该数组[ "A", "B" ]的元素的所有文档。

    1. db.inventory.find( { tags: { $eq: [ "A", "B" ] } } )

    该查询等效于:

    1. db.inventory.find( { tags: [ "A", "B" ] } )

    这两个查询都匹配以下文档:

    1. { _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] }
    2. { _id: 5, item: { name: "mn", code: "000" }, qty: 20, tags: [ [ "A", "B" ], "C" ] }

    译者:李冠飞

    校对:

    参见

    原文 - $eq