$avg (平均アキュムレータ)

最終更新:2026-10-09

$avg (平均アキュムレータ)

$avg は、$group 内でグループ全体の指定フィールドの平均を、$project 内で配列要素の平均を計算するアキュムレータです。null や欠損した値は無視され、数値だけを平均します。レポート集計でよく使われ、平均対象の式はいくらでも複雑化できます。

カテゴリアキュムレータ
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

// $group 内の指定フィールドの平均
{ $group: { _id: <key>, avg: { $avg: "$field" } } }
// $project 内の配列要素の平均
{ $project: { avg: { $avg: "$scores" } } }

戻り値:数値の平均(null と欠落値は無視)

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $avg: アイテムごとの平均価格
db.sales.aggregate([
  { $group: { _id: '$item', avg: { $avg: '$price' } } }
])

出力:

{ "_id": "Pen", "avg": 45.5 }
{ "_id": "Book", "avg": 12.0 }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$avg が欠損フィールドに当たった場合はどうなりますか?
A欠損値や null は無視され、存在する数値だけを平均します。
Q$avg は $project 内で使えますか?
Aはい。配列要素の平均を出せます。例: { $project: { a: { $avg: '$scores' } } }。
Q加重平均はどう計算しますか?
A$sum で「値 × 重み」を累積し、重みの $sum で割ります。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%