$group
を含めます $project
の後のオペレーターパイプラインステージ 次の手順:
db.profil.aggregate([
{ "$match":{ "typ": "Organisation" } },
{ "$project": {
"fooos": { "$size": "$foos" }
} },
{ "$group": {
"_id": null,
"count": {
"$sum": "$fooos"
}
} }
])
これにより、前の $project
からのすべての入力ドキュメントがグループ化されます ステージングし、アキュムレータ式を適用します $sum
fooos
で グループ内のフィールドで合計を取得します(最後の例を使用):
これは、 $project
をバイパスして実行することもできます。 パイプラインとして:
db.profil.aggregate([
{ "$match": { "typ": "Organisation" } },
{ "$group": {
"_id": null,
"count": {
"$sum": { "$size": "$foos" }
}
} }
])
出力
/* 0 */
{
"result" : [
{
"_id" : null,
"count" : 24
}
],
"ok" : 1
}