Mongodb: フィールドの平均値を計算する方法
次の方法を使用して、MongoDB のフィールドの平均値を計算できます。
方法 1: フィールド平均を計算する
db.collection.aggregate([{ $group : {_id: null , avg_val:{$avg: " $valueField "}}}])
方法 2: グループごとのフィールド平均を計算する
db.collection.aggregate([{ $group : {_id: " $groupField ", avg_val:{$avg: " $valueField "}}}])
次の例は、次の文書を使用して収集チームで各方法を使用する方法を示しています。
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 9})
例 1: フィールド平均を計算する
次のコードを使用して、ポイントフィールドの平均値を計算できます。
db.teams.aggregate([{ $group : {_id: null , avg_val:{$avg: " $points "}}}])
このクエリは次の結果を返します。
{ _id: null , avg_val: 26 }
結果から、ポイント フィールドの平均値は26であることがわかります。
手動でポイント値を平均することで、これが正しいことを手動で検証できます。
平均ポイント: (30 + 30 + 20 + 25 + 25) / 5 = 26 。
例 2: グループごとのフィールド平均を計算する
次のコードを使用して、チームフィールドごとにグループ化されたポイントフィールドの平均値を計算できます。
db.teams.aggregate([{ $group : {_id: " $team ", avg_val:{$avg: " $points "}}}])
このクエリは次の結果を返します。
{ _id: ' Spurs ', avg_val: 23.333333333333332 } { _id: ' Mavs ', avg_val: 30 }
結果から次のことがわかります。
- スパーズの平均得点は23.33です。
- マブスの平均ポイント値は30です。
注: $avg関数の完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、MongoDB で他の一般的な操作を実行する方法について説明します。
MongoDB: 新しいフィールドを追加する方法
MongoDB: フィールドを削除する方法
MongoDB: グループ化してカウントする方法
MongoDB: 複数のフィールドでグループ化する方法