Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$bottom(式演算子)

$bottom

バージョン8.3の新機能

指定ソート順に従って、配列内の最後の要素を返します。

注意

曖昧さ回避

このページでは、$bottom 式子について説明します。$bottom アキュムレータ演算子については、 $bottom(アキュムレータ演算子) を参照してください。

式子として使用する場合、$bottom は次の構文をとります。

{
$bottom:
{
sortBy: <expression>,
input: <expression>
}
}
フィールド
必要性
説明

sortBy

必須

結果の順序を指定します。詳細については、「 ソート動作 」を参照してください。

入力

必須

$bottom が評価する配列。

MongoDB はsortBy 値に基づいて input 配列をソートします。次の表に、さまざまなソートオプションの例を示します。

input
sortBy
ソート済み input
[ 8, 3, 1, 10]

1

[1, 3, 8, 10]
[ 8, 3, 1, 10]

-1

[10, 8, 3, 1]
[
{ a: 1, b: 1 },
{ a: 2, b: 2 },
{ a: 2, b: 1 }
]

{ a: 1, b: 1 }

[
{ a: 1, b: 1 },
{ a: 2, b: 1 },
{ a: 2, b: 2 }
]

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 配列で $bottom を使用します。

db.movies.aggregate([
{
$match: { title: "The Godfather" }
},
{
$project: {
_id: 0,
title: 1,
lastCastMemberAlphabetically: {
$bottom: {
sortBy: 1,
input: "$cast"
}
}
}
}
])
[
{
title: 'The Godfather',
lastCastMemberAlphabetically: 'Richard S. Castellano'
}
]

この例では 、$bottom は既存の cast 配列をアルファベットの昇順でソートし、最後の値を返します。

項目一覧