我在資料庫中有這些型別的物件。
[
{ data: { key: 'A', value: 'one' } },
{ data: { key: 'A', value: 'one' } },
{ data: { key: 'A', value: 'two' } },
{ data: { key: 'A', value: 'one' } }
]
我嘗試了以下聚合
{
$group: {
_id: { key: "$data.key", value: "$data.value" },
count: { $sum: 1 },
}
},
我得到了以下結果:
[
{ _id: { key: 'A', value: 'two' }, count: 1 },
{ _id: { key: 'A', value: 'one' }, count: 3 }
]
如何構建我的管道以獲得我想要的結果?
[
{
key: 'A',
result : [
{ value: 'one', count: 3 },
{ value: 'two', count: 1 },
]
}
]
uj5u.com熱心網友回復:
$group 兩次
db.collection.aggregate([
{
$group: {
_id: {
key: "$data.key",
value: "$data.value"
},
count: {
$sum: 1
}
}
},
{
$group: {
_id: "$_id.key",
result: {
$push: {
value: "$$ROOT._id.value",
count: "$$ROOT.count"
}
}
}
}
])
mongoplayground
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/326140.html
