1. ホーム
  2. mongodb

[解決済み] MongoDB で合計を集計する方法は?

2023-06-28 05:48:16

質問

あるフィールドを持つコレクションに対して { wins: Number } である場合、どのようにすれば MongoDB 集計フレームワーク を使用して、コレクション内のすべてのドキュメントで勝利の合計数を取得するには?

例を挙げます。

3つの文書に wins: 5 , wins: 8 , wins: 12 のそれぞれで、MongoDB Aggregation Framework を使って合計数を返すにはどうすればいいでしょうか。つまり、MongoDB Aggregation Framework は total: 25 .

どのように解決するのですか?

サム

MongoDB の Aggregation Framework を使うときにグループ化されたフィールドの合計を取得するには、次のようにします。 $group$sum :

db.characters.aggregate([ { 
    $group: { 
        _id: null, 
        total: { 
            $sum: "$wins" 
        } 
    } 
} ] )

この場合、全ての合計を取得したい場合は wins の合計を求めるには、フィールド名として $ という構文でフィールド名を参照する必要があります。 $wins の値を取得するだけです。 wins フィールドの値をグループ化されたドキュメントから取得し、それらを合計しています。

カウント

あなたは sum のように、特定の値を渡すことで、他の値も指定することができます。もし、あなたが

{ "$sum" : 1 } ,

というのは、実際にはすべての wins を数えることになります。