1

我开始使用 MongoDB,我有一个关于聚合的问题。我有一个文档,它以不同的顺序使用了很多不同的字段。例如:

db.my_collection.insert({ "answers" : [ { "id" : "0", "type" : "text", "value" : "A"}, { "id" : "1", "type" : "text", "value" : "B"}]})


db.my_collection.insert({ "answers" : [ { "id" : "0", "type" : "text", "value" : "C"}, { "id" : "1", "type" : "text", "value" : "A"}]})

我会使用带有“answers.value”的“answers.id”执行查询以获得结果。

我试过但没有得到结果,就我而言,我执行了命令:

db.my_collection.aggregate({$match: {"answers.id":"0", "answers.value": "A"}})

结果是我预期的两个回应:

{ "answers" : [ { "id" : "0", "type" : "text", "value" : "A"}, { "id" : "1", "type" : "text", "value" : "B"}]

谢谢!!!

4

1 回答 1

1

您需要使用$elemMatch运算符将数组的单个元素answers与指定的 'id' 和 'value' 匹配。

像这样的东西应该工作:

db.my_collection.aggregate( {
        "$match" : { 
             "answers" { 
                 "$elemMatch" : { 
                        "id" : "0", 
                        "value" : "A"
                 }
             }
         } 
} )
于 2013-09-14T18:59:33.377 回答