我的应用有以下文档。
Key
分组" a"和" b"字段,然后如果文件有相同的" a"和" b"然后按列表获取每个数据。 如何返回以下输出列表?
{
“name” : “sample1”,
“a” : 1,
“b” : 1000,
“value” : “AA”
},
{
“name” : “sample2”,
“a” : 1,
“b” : 1000,
“value” : “BB”
},
{
“name” : “sample1”,
“a” : 2,
“b” : 2000,
“value” : “CC”
}
答案 0 :(得分:1)
你可以通过像这样的聚合框架来实现这个目标
db.grp.aggregate([
{
$group:{
_id:{
a:"$a",
b:"$b"
},
result:{
$push:{
name:"$name",
value:"$value"
}
}
}
}
])
它返回
{
"_id":{
"a":2,
"b":2000
},
"result":[
{
"name":"sample1",
"value":"CC"
}
]
}{
"_id":{
"a":1,
"b":1000
},
"result":[
{
"name":"sample1",
"value":"AA"
},
{
"name":"sample2",
"value":"BB"
}
]
}