mongo 3.0.4を使用してデータをキーでグループ化しています。私はキーの「名前」で集計しmongoアグリゲートパイプラインで、サム演算子を使用するときにnullと0を区別する方法
[
{
'$group': {
'_id': '$name',
'a': {
'$sum': '$a'
},
'b': {
'$sum': '$b'
},
'c': {
'$sum': '$c'
}
}
}
]
以下のコードを使用して、すべてのA、B、Cの各フィールドを合計などの結果を取得しようと、我々は
{'a': 1, 'b': 2, 'name': 'leo'}
{'a': 1, 'b': 2, 'name': 'leo'}
{'a': 2, 'b': 2, 'c': 0, 'name': 'amy'}
{'a': 2, 'b': 2, 'c': 0, 'name': 'amy'}
のようないくつかのmongo書類を持っていると仮定その
[
{
'_id': 'leo',
'a': 2,
'b': 4,
'c': 0
},
{
'_id': 'amy',
'a': 4,
'b': 4,
'c': 0
}
]
質問はグループleoの "c"フィールドも0で、私はnullであると予想しています。 と期待される結果は、私が$sum
オペレータ扱い0としてなしの数値フィールドを知っている
[
{
'_id': 'leo',
'a': 2,
'b': 4,
'c': null
},
{
'_id': 'amy',
'a': 4,
'b': 4,
'c': 0
}
]
または
[
{
'_id': 'leo',
'a': 2,
'b': 4
},
{
'_id': 'amy',
'a': 4,
'b': 4,
'c': 0
}
]
する必要がありますので、それを行うための任意の方法はありますか?合計演算子を使用する場合、nullと0を総計で区別するにはどうすればよいですか?
これは単一クエリでは達成できないと思います。あなたは2つにあなたのクエリを分割する必要があります。 –
1つのパイプラインで達成できる可能性はありますか?一致を使用するような、プロジェクト... –