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

$median(式)

$median

バージョン7.0の新機能。

数値の配列の中央値( パーセンタイル50 )を返します。

注意

曖昧さ回避

このページでは、値の配列の中央値を計算する式として使用される場合の$median について説明します。

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

{
$median: {
input: <expression>,
method: <string>
}
}
フィールド
タイプ
必要性
説明

input

配列

必須

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

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

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

$median 配列内のすべての値の中央値を計算します。数値以外の値は無視されます。

method

文字列

必須

MongoDB で中央値を計算するために使用される方法。メソッドは 'approximate' である必要があります。

$median が式として使用される場合、method: "approximate" が指定されている場合でも、近似値ではなく、常に正確なパーセンタイル計算アルゴリズムが使用されます。

これは、すべての入力値をメモリに保持できれば、式は制限されたサイズの配列に対して動作するためです。

次の例では、testScoresコレクションを使用して $median の配列入力形式を示しています。

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 ] }
] )

次のパイプラインでは、$median を使用して各生徒のテストスコアの中央値を計算します。

db.testScores.aggregate( [
{
$project: {
_id: 0,
studentId: 1,
testMedians: {
$median: {
input: "$scores",
method: 'approximate'
}
}
}
}
] )

上記のパイプラインでは、

  • $projectと は、各ドキュメントの$median 配列で中央値を検索し、それをscores testMediansとして返します。

  • 各結果は、その生徒の記録されたテストのスコアの中央値を反映します。

このページを評価