定義
構文
式子として使用する場合、$top は次の構文をとります。
{ $top: { sortBy: <expression>, input: <expression> } }
動作
ソート動作
MongoDB はsortBy 値に基づいて input 配列をソートします。次の表に、さまざまなソートオプションの例を示します。
input | sortBy | ソート済み input | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| | ||||||||||
|
| | ||||||||||
|
| |
Input Values
inputフィールドは配列に変換される必要があります。配列ではない input を指定すると、 MongoDB はエラーを返します。
例
次の例では、movies sample_mflixサンプルデータセットの コレクションを使用します。このデータセットを配置にロードする方法の詳細については、「サンプルデータセットをロードする 」を参照してください。
moviesコレクションには、次の例のようなドキュメントが含まれています。
{ _id: ObjectId('573a1396f29313caabce4a9a'), year: 1972, genres: [ 'Crime', 'Drama' ], title: 'The Godfather', cast: [ 'Marlon Brando', 'Al Pacino', 'James Caan', 'Richard S. Castellano' ], directors: [ 'Francis Ford Coppola' ], runtime: 175, ... }
次の集計パイプラインでは、cast 配列の $top を使用して、指定された映画のアルファベット順の最初のキャストメンバーを返します。
db.movies.aggregate([ { $match: { title: "The Godfather" } }, { $project: { _id: 0, title: 1, firstCastMemberAlphabetically: { $top: { sortBy: 1, input: "$cast" } } } } ])
[ { title: 'The Godfather', firstCastMemberAlphabetically: 'Al Pacino' } ]
この例では 、$top は既存の cast 配列をアルファベットの昇順でソートし、最初の値を返します。