私は集計を実行しており、元の集計方法ではSUM
の合計をさらに細分化する機能を実行する方法を検討しています。私は現在、クラスターコードでグループ化された距離内の合計イベントを返します。私は合計数を各カテゴリーごとに分解したいと思います。返された集計結果内の変数の数を返します
は、私は、私は、各カテゴリのためにこれを打破するために私$group
クエリ内の余分なパラメータ{"category" : "$category"}
を追加することができます承知しているので、
var events = Events.aggregate(
[
{
$match : {
"location.loc" : {
$geoWithin : {
$centerSphere : [[long,lat], milesToRadian(radius) ]
}
}
}
},
{
$group : {
_id : { 'cluster_code' : "$location.cluster_code"},
count : { $sum : 1 }
}
}
]
)
として$group
クエリを実行することができます知っています。私は次に、私が探している正しいフォーマットを作成するためのグループ化方法を実行することができます。これは私が質問を改善できるように感じます。
私が達成しようとしているのは、SUMのカウントを各category
のカウントにすることです。これと同様:
{
"_id": {
"cluster_code": "FK",
},
"Run" : 2,
"Swim" : 1
"count": 3
},
これは単一の集約クエリで可能ですか?
UPDATE
あなたは3.4.4
バージョンに集約パイプラインの下に試すことができるサンプルダミーの文書
{
_id : "df",
"location" : {
//...
},
"category" : "Run"
}
サンプルドックはどのように見えますか? – Astro
上記の更新。 'category'はトップレベルの文字列です – Allreadyhome