AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$percentile(式)

$percentile

数値の配列に対して計算された 1 つ以上のパーセンタイル値を返します。

注意

曖昧さ回避

このページでは、入力値の配列に対するパーセンタイル値を計算する式として使用する場合の$percentile について説明します。

次の他のコンテキストでは $percentile を使用することもできます。

{
$percentile: {
input: <expression>,
p: [ <expression1>, <expression2>, ... ],
method: <string>
}
}
フィールド
タイプ
説明

input

配列

次のいずれかになります。

  • 配列に解決される式。例、 、$scores、ドキュメントフィールド$scores に数値の配列が含まれています。

  • 式の配列。それぞれは数値として評価されます。例、[ "$field1", "$field2", "$field3" ]。

$percentile は、配列内のすべての数値のパーセンタイル値を計算します。数値以外の値は無視されます。

p

式

$percentile は、p 内の各要素のパーセンタイル値を計算します。これらの要素は計算する四半期を指定し、0.0 から 1.0 までの範囲の数値である必要があります(両端を含む)。

$percentile は、 pの要素と同じ順序で結果を返します。

method

文字列

MongoDB でパーセンタイル 値を計算するために使用される方法。メソッドは 'approximate' である必要があります。

式として使用する場合、$percentile は、method: 'approximate' が指定されている場合でも、近似値ではなく常に正確なパーセンタイル計算アルゴリズムを使用します。これは、すべての入力値をメモリに保持できれば、式は制限されたサイズの配列に対して動作するためです。

testScores コレクションを作成します。

db.testScores.insertMany( [
{ studentId: "2345", scores: [ 62, 81, 80, 75, 68 ] },
{ studentId: "2356", scores: [ 60, 83, 79, 72, 65 ] },
{ studentId: "2358", scores: [ 67, 82, 78, 70, 84 ] },
{ studentId: "2367", scores: [ 64, 72, 77, 58, 91 ] },
{ studentId: "2369", scores: [ 60, 53, 72, 85, 63 ] }
] )

次のパイプラインでは、$percentile を使用して、各生徒の 25 回、50 回、75 回のパーセンタイルテスト スコアを計算します。

db.testScores.aggregate( [
{
$project: {
_id: 0,
studentId: 1,
testPercentiles: {
$percentile: {
input: "$scores",
p: [ 0.25, 0.5, 0.75 ],
method: 'approximate'
}
}
}
}
] )

$project$percentile25前述のパイプラインでは、50 と75 は、各生徒の 配列の th、 th、scores パーセンタイルを計算し、それらをtestPercentiles として返します。

このページを評価