mongodb - Mongodb Aggregation group, count and group
问题描述
$group:{
_id:{
status:"$dir_status",
directions:"$direction"
},
"X": {
"$sum": { $cond: [{ "$eq": ["$dir_status", "0"] }, 1, 0] }
},
"Y": {
"$sum": { $cond: [{ "$eq": ["$dir_status", "1"] }, 1, 0] }
},
"Z": {
"$sum": { $cond: [{ "$eq": ["$dir_status", "2"] }, 1, 0] }
},
count:{$sum:1}
}
after an aggregation i got this output
[
{
_id: { level: 'd1' },
X: 0,
Y: 0,
Z: 0,
count: 3
},
{
_id: { level: 'd2' },
X: 0,
Y: 0,
Z: 0,
count: 3
},
{
_id: { level: 'd3' },
X: 0,
Y: 0,
Z: 0,
count: 4
},
]
Now i want to group it as
[
level:"$_id.level",
range:[ { dir:"X", count:"$X"}, { dir:"Y", count:"$Y"}, { dir:"Z", count:"$Z"}]
]
i used $push method but its not working combining three objects. Help me to resolve this to get output like this
[{level:"d1", range:[{dir:"X", count:0}, {dir:"Y", count:5}]]
解决方案
推荐阅读
- primefaces - Primefaces 升级 8 后数据表过滤器不起作用
- perl - 在 SunOS 机器上运行 Perl 脚本
- android - 如何用 Lottie 动画替换 Android 图像可绘制(滑动)?
- python - 使用嵌套字典创建 pandas 数据框
- mesibo - 在 Mesibo On Premise 配置中找不到主机名选项
- excel - 列表的单独组合不起作用
- c - 如何接受指向具有任意数量参数的函数的指针,作为 C 中的参数并调用它?
- c# - 通信 Windows 服务/Web 服务器
- angular - 如何在 Angular 中将组件传递给 ng-content?
- arrays - 如何在 PostgreSQL 选择语句中尊重数组的顺序