フィールド{ wins: Number }
を持つコレクションの場合、コレクション内のすべてのドキュメントの合計勝ち数を取得するためにMongoDB Aggregation Frameworkを使用するにはどうすればよいですか?
それぞれwins: 5
、wins: 8
、wins: 12
の3つのドキュメントがある場合、MongoDB Aggregation Frameworkを使用して合計数、つまりtotal: 25
を返すにはどうすればよいですか。
MongoDBの集約フレームワークを使用しているときにグループ化されたフィールドの合計を取得するには、$group
および$sum
を使用する必要があります。
db.characters.aggregate([ {
$group: {
_id: null,
total: {
$sum: "$wins"
}
}
} ] )
この場合、すべてのwins
の合計を取得する場合は、$
構文を使用してフィールドの名前を$wins
として参照する必要があります。グループ化されたドキュメントのwins
フィールド。それらを合計します。
(コメントで行ったように)特定の値を渡すことにより、他の値もsum
できます。あなたが持っていた場合
{ "$sum" : 1 }
、
実際には、合計ではなく、すべてのwins
のカウントになります。