MongoDB-查询较低级别文档中的字段

时间:2019-08-10 07:30:32

标签: mongodb

如何获取文档中特定字段的数据

关注的是我的收藏结构

colleciton mail
   mailtype
   criteria 
      triggerinfor
            code   ---->  multiple codes are there.
            description
            status 

尝试过但不起作用

db.getCollection('Mail').find(
{
    "MailType" :"Printed",
    "MailName" :"Welcomemail",
    "programType":"Maile",
    "criterias"  :
              {"triggerInformation":
                                  {"code"       :"MAIL007"},
                                  {"description":"1234 Welcome maile"}
              }
}
)

我只需要检索代码为MAIL007的文档即可..可以帮助您对此进行查询

1 个答案:

答案 0 :(得分:0)

有两种方法,具体取决于您的需求:

1-匹配精确的嵌套文档::通过这种方式,您查询的嵌套文档与搜索条件中的文档完全完全相同。< / p>

db.getCollection('Mail').find(
{
    "MailType" :"Printed",
    "MailName" :"Welcomemail",
    "programType":"Maile",
    "criterias.triggerInformation": {
        "code": "MAIL007",
        "description": "1234 Welcome maile",
        "status": "some status"
    }
}

请注意,您需要为搜索条件中的每个嵌套文档字段显式告知一个值。如果缺少任何字段,查询将不返回任何内容。

2-查询嵌套文档中的字段:这样,您将基于嵌套文档中一个或多个字段的值查询文档。

db.getCollection('Mail').find({
    "MailType":"Printed",
    "MailName":"Welcomemail",
    "programType":"Maile",
    $and: [
        {"criterias.triggerInformation.code": "MAIL007"},
        {"criterias.triggerInformation.description": "description":"1234 Welcome maile"}
    ]
})

在上面的代码中,您正在基于嵌套文档code中的descriptioncriterias.triggerInformation字段的值查询文档。

您可以在MongoDB的文档here

中找到有关查询嵌套文档的更多信息。