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: 複数のフィールドでグループ化する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です