【发布时间】:2019-04-04 02:45:47
【问题描述】:
在 Mongo 的聚合过程中,我一直在为将每个“其他”列添加在一起而烦恼。
我的数据样本:
[
{'item': 'X',
'USA': 3,
'CAN': 1,
'CHN': 1,
'IDN': 1,
:
:
:
},
{'item': 'R',
'USA': 2,
'CAN': 2,
'CHN': 1,
'IDN': 2,
:
:
:
}
]
在聚合阶段,我想要一个名为“其他”的新字段,它是所有字段总和的结果未指定。
我想要的结果是这样的:
[
{'item': 'X',
'NAM': 79,
'IDN': 51,
'OTHER': 32
},
{'item': 'R',
'NAM': 42,
'IDN': 11,
'OTHER': 20
}
]
到目前为止,我能得到的最接近的是使用这个:
mycoll.aggregate([
{'$addFields':{
'NAM': {'$add':[{'$ifNull':['$CAN', 0]},{'$ifNull':['$USA', 0]}]},
'INDIA': {'$ifNull':['$IDN', 0]},
'OTHER': /* $add all the fields that are not $USA, $CAN, $IDN*/
}},
])
蒙古大师们,请开导这个可怜的灵魂。深深地欣赏它。谢谢!
【问题讨论】:
-
你能解释一下吗/ $add 所有不是$USA, $CAN, $IDN*/*的字段
-
我想将那些不是 USA、CAN、IDN 的字段添加到一起创建一个新字段 'OTHER'
标签: mongodb nosql aggregation-framework nosql-aggregation