MongoDb - 查询特定的子文档

时间:2015-04-30 10:26:10

标签: mongodb sitecore mongodb-query sitecore8

我有一组具有以下结构的mongodb文档:

{
    "_id" : NUUID("58fbb893-dfe9-4f08-a761-5629d889647d"),
    "Identifiers" : {
        "IdentificationLevel" : 2,
        "Identifier" : "extranet\\test@test.com"
    },
    "Personal" : {
        "FirstName" : "Test",
        "Surname" : "Test"
    },    
    "Tags" : {
        "Entries" : {
            "ContactLists" : {
                "Values" : {
                    "0" : {
                        "Value" : "{292D8695-4936-4865-A413-800960626E6D}",
                        "DateTime" : ISODate("2015-04-30T09:14:45.549Z")
                    }
                }
            }
        }
    }
}

如何使用mongo shell进行查询,该shell查找具有特定"值"的所有文档。 (例如,Tag.Entries.ContactLists.Values路径中的{292D8695-4936-4865-A413-800960626E6D}?

遗憾的是,该结构被Sitecore锁定,因此它不是使用其他结构的选项。

1 个答案:

答案 0 :(得分:0)

由于您的示例集合结构显示Values是对象,因此它只包含一个Value。此外,您必须检查Value,因为它包含额外的paranthesis。如果您想从给定结构中获取Value,请尝试以下查询:

db.collection.find({
"Tags.Entries.ContactLists.Values.0.Value": "{292D8695-4936-4865-A413-800960626E6D}"
})