定義
配列から最大値を返します。
注意
曖昧さ回避
$maxこのページでは、配列または値のリストから最大値を返す式として使用される場合の について説明します。
次の他のコンテキストでは $max を使用することもできます。
$max (accumulator)は、入力ドキュメントの変数に基づいて単一の集計値を返します。$max (window function)$setWindowFieldsは、特定のウィンドウ内のドキュメントから最大値を返すために ステージで使用されます。
構文
{ $max: <expression> }
expression は配列に評価される必要があります。
動作
結果の型
$max は、 BSON比較 の順序に従って入力データを比較し、適切な出力型を決定します。 入力データに複数のデータ型が含まれている場合、 $maxの出力型が比較順序では最も高い値になります。
NULL および欠損値
$maxの入力値の一部がnull または欠落している場合、$max は null 以外と欠落以外の値のみを考慮します。
$maxのすべての入力値がnull または欠落している場合、$max nullは を返します。
配列オペランド
単一の式をオペランドとして使用し、その式が配列に変換されると、$max は配列をトラバースして最大値を見つけます。
式のリストをオペランドとして使用する場合、いずれかの式が配列に変換されると、$max はその配列をトラバースせず、代わりに配列全体として比較します。
例
このページの例では、 sample_mflix データセット のデータを使用します。このデータセットを自己管理型MongoDBデプロイにロードする 方法の詳細については、「 サンプル データセットをロードする 」を参照してください。サンプルデータベースに変更を加えた場合、このページの例を実行するには、データベースを削除して再作成する必要がある場合があります。
次の例では、$max $projectステージで を使用して、3 つの評価ソース( IMDb、Rotten ユーザー、Rotten ユーザー: ローテーション ポリゴン)全体で各映画の最高評価を見つけます。
db.movies.aggregate( [ { $match: { title: { $in: [ "The Godfather", "Schindler's List", "The Dark Knight" ] }, "imdb.rating": { $gt: 0 }, "tomatoes.viewer.rating": { $gt: 0 }, "tomatoes.critic.rating": { $gt: 0 } } }, { $project: { _id: 0, title: 1, highestRating: { $max: [ "$imdb.rating", "$tomatoes.viewer.rating", "$tomatoes.critic.rating" ] } } }, { $sort: { title: 1 } } ] )
先行するパイプライン: