我开始使用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.id”和“answers.value”执行查询以获得结果。
我试过但没有得到结果,在我的情况下,我执行了命令:
db.my_collection.aggregate({$match: {"answers.id":"0", "answers.value": "A"}})
结果是我只期望的两个回复:
{ "answers" : [ { "id" : "0", "type" : "text", "value" : "A"}, { "id" : "1", "type" : "text", "value" : "B"}]
谢谢!!!
答案 0 :(得分:1)
您需要使用$elemMatch运算符将answers
数组的单个元素与指定的“id”和“value”匹配。
这样的事情应该有效:
db.my_collection.aggregate( {
"$match" : {
"answers" {
"$elemMatch" : {
"id" : "0",
"value" : "A"
}
}
}
} )