定義
最大値を返します。$max は、異なる型の値に対して指定された BSON 比較順序を使用して、値と型の両方を比較します。
$max アキュムレータは次のステージで使用可能です。
注意
曖昧さ回避
このページでは、$max をアキュムレータとして使用する場合について説明します。アキュムレータは、入力ドキュメントのグループ全体で、合計、最大値、最小値などの単一の集計値を返します。
$max は、これらの他のコンテキストでも使用できます。
$max (expression)は、配列または値のリストから最大値を返します。$max (window function)は、$setWindowFieldsステージで使用され、特定のウィンドウのドキュメントから最大値を返します。
構文
{ $max: <expression> }動作
結果の型
$max は、 BSON比較 の順序に従って入力データを比較し、適切な出力型を決定します。 入力データに複数のデータ型が含まれている場合、 $maxの出力型が比較順序では最も高い値になります。
NULL および欠損値
$max の入力値のうち、すべてではなく一部のみが null であるか、欠落している場合、$max は null 以外の値と欠落値以外の値のみを考慮します。
の入力値が、すべて $maxnullまたは空の場合、$max はnull を返します。
配列オペランド
$group ステージでは、式の結果が配列となる場合、$max は配列をトラバースせず、配列全体として比較します。
等しい値
複数の値が等しいと比較される場合、$max はそれらの値のいずれかを返すことがあります。どの等しい値を $max が返すかは保証されていません。
例、大文字と小文字を区別しない照合では、"a" と "A" は等しく比較できます。どれが返されるかは保証されません。
$group ステージで使用
このページの例では、sample_mflix データセット のデータを使用しています。自己管理型 MongoDB 配置にこのデータセットをロードする方法の詳細については、「サンプル データセットのロード」を参照してください。サンプル データベースに何らかの変更を加えた場合は、今ページの例を実行するには、データベースを削除して再作成する必要がある可能性があります。
次の例では、$max を使用して $group ステージで、各評価カテゴリの映画の最高 IMDb 評価と最長の再生時間を検索します。
db.movies.aggregate( [ { $match: { rated: { $in: [ "G", "PG", "PG-13", "R" ] }, "imdb.rating": { $gt: 0 }, runtime: { $gt: 0 } } }, { $sort: { rated: 1 } }, { $group: { _id: "$rated", maxImdbRating: { $max: "$imdb.rating" }, maxRuntime: { $max: "$runtime" } } }, { $sort: { _id: 1 } }] )以前のパイプライン: