$percentile (パーセンタイルアキュムレータ)

最終更新:2026-10-09

$percentile (パーセンタイルアキュムレータ)

$percentile は、グループ内のフィールドの指定パーセンタイル(0〜100)の値を返すアキュムレータで、MongoDB 7.0 以降で利用できます。p 引数は単一の値または配列を受け付けます。method は approximate(既定、高速)と exact をサポートします。p95/p99 のレイテンシや給与分位数によく使われます。

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

📝 構文

{ $group: { _id: <key>, pct: { $percentile: { input: "$field", p: [ <percentile> ], method: "approximate" } } } }

戻り値:指定したパーセンタイルの値(配列入力・配列出力)

▶ 例

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

// $percentile: サービスごとの p50・p95・p99 レイテンシ
db.latency.aggregate([
  { $group: { _id: '$service', pct: { $percentile: { input: '$ms', p: [50, 95, 99], method: 'approximate' } } } }
])

出力:

{ "_id": "api", "pct": [12, 45, 80] }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Qp95 はどう計算しますか?
Ap: [95] を渡して分位数を得ます。レイテンシ監視によく使われます。
Qapproximate の精度はどの程度ですか?
A大規模データで誤差は小さく高速です — 監視用途には十分です。精度が重要な場合は exact を使います。
Q$percentile と $median の違いは?
A$median は 50 パーセンタイルに固定です。$percentile は任意のパーセンタイルを扱えます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%