AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

$maxN(演算子)

$maxN

配列内の n つの最大値を返します。

注意

$maxN のその他の使用方法

このページでは、配列から最大の n 値を返す 式として使用する場合の $maxN について説明します。

$maxN は、これらの他のコンテキストでも使用できます。

{ $maxN: { n: <expression>, input: <expression> } }
フィールド
タイプ
説明

n

式

返す要素の数を指定します。正の整数に解決される必要があります。

input

式

最大 n 個の要素を返す入力配列を指定します。

  • $maxN null 値をフィルターで除外します。

  • input 配列に n 個未満の要素が含まれている場合、$maxN は配列内のすべての要素を返します。

  • input が配列以外の値に解決される場合、操作はエラーを返します。

  • input に数値要素と string 要素の両方が含まれる場合、string 要素はBSON 比較順序に従って数値要素より先にソートされます。

このページの例では、sample_mflix データセット のデータを使用しています。自己管理型 MongoDB 配置にこのデータセットをロードする方法の詳細については、「サンプル データセットのロード」を参照してください。サンプル データベースに何らかの変更を加えた場合は、今ページの例を実行するには、データベースを削除して再作成する必要がある可能性があります。

以下の例では、$maxNを使用して各映画のキャストノードのうち、アルファベット順で最後の2人を返し、$addFieldsによって作成された新しいtopTwoCastフィールドに保存します。

db.movies.aggregate( [
{
$match: {
title: { $in: [ "The Godfather", "Spirited Away", "The Dark Knight" ] }
}
},
{
$addFields: {
topTwoCast: { $maxN: { n: 2, input: "$cast" } }
}
},
{
$project: {
_id: 0,
title: 1,
cast: 1,
topTwoCast: 1
}
},
{
$sort: { title: 1 }
}
] )

以前のパイプライン:

  • $matchを使用して3本の特定の映画をフィルターします。

  • $maxN とともに $addFields を使用して、n: 2 を使用して cast 配列から字典順で最後の 2 つの値を含む新しいフィールド topTwoCast を作成します。

  • $project を使用すると、出力にはtitle フィールド、cast フィールド、topTwoCast フィールドのみが含まれます。

  • 結果をタイトルでソートするために、$sort を使用します。

このページを評価