使用MongoDB的聚合管道,我希望能够按值对文档进行分组而不进行任何累积。
例如,我想按key
分组此集合:
[
{
"_id":"323232",
"name":"Something",
"key":"A",
"price":"100"
},
{
"_id":"157236",
"name":"Another thing",
"key":"B",
"price":75
},
{
"_id":"555232",
"name":"Something or another",
"key":"B",
"price":78
}
]
期望的结果:
[
{
"_id":"A",
"results": [
{
"_id":"323232",
"name":"Something",
"key":"A",
"price":"100"
}
]
},
{
"_id":"A",
"results": [
{
"_id":"157236",
"name":"Another thing",
"key":"B",
"price":75
},
{
"_id":"555232",
"name":"Something or another",
"key":"B",
"price":78
}
]
}
]
答案 0 :(得分:2)
这个怎么样?
db.test.aggregate([
{
$sort : {"price" : 1}
},
{
$group : {
_id : '$key',
results : {
$push : {
"_id":"$_id",
"name":"$name",
"key":"$key",
"price":"$price"
}
}
}
}
]).pretty()
答案 1 :(得分:2)
检查这个
db.coll.aggregate([
{ "$group" : {
'_id' :'$key',
result: {$push:'$$ROOT'}
}
}
]);