我正在努力完成this link中的海报试图完成的任务。我有与海报结构相同的文件;在我的文档中有一个对象数组,每个对象都有很多键。我希望在该数组中将所有对象(不仅仅是第一个,而不是$elemMatch
)带回来,其中键的值与我的查询匹配。我希望我的查询结果只是一个对象数组,其中每个对象中都有一个与我的查询匹配的键。例如,在链接问题的情况下,我想要返回"class":"s2"
的对象数组。我想要回复:
"FilterMetric" : [
{
"min" : "0.00",
"max" : "16.83",
"avg" : "0.00",
"class" : "s2"
},
{
"min" : "0.00",
"max" : "16.83",
"avg" : "0.00",
"class" : "s2"
}
]
我在答案中尝试了所有查询。前两个查询在robomongo中带回一个空数组。在shell中,命令不执行任何操作并将我返回到下一行。这是robomongo的截图:
在答案中的第三个查询中,我为unexpected token
所在的行获得"input"
。
我正在使用MongoDB 3.0.2版。似乎OP在答案中是成功的,所以我想知道是否存在版本问题,或者我是否以错误的方式接近它。
答案 0 :(得分:1)
该问题中答案的唯一问题似乎是他们使用FilterMetric
的错误大小写。例如,这有效:
db.sample.aggregate([
{ "$match": { "FilterMetric.class": "s2" } },
{ "$unwind": "$FilterMetric" },
{ "$match": { "FilterMetric.class": "s2" } },
{ "$group": {
"_id": "$_id",
"FilterMetric": { "$push": "$FilterMetric" }
}}
])