$reverseArray (配列の順序を反転)
最終更新:2026-10-09
$reverseArray (配列の順序を反転)
$reverseArray は配列の要素の順序を反転して新しい配列を返します。時系列の昇順レコードを降順に反転したり、最新メッセージを先頭に持ってきたりするのに使います。反転されるのは外側の配列だけで、入れ子の配列は内部の順序を保ちます。配列以外の引数は MongoDB 5.0 より前はエラー、5.0 以降は null を返すため、型が不明なフィールドは $isArray でガードしてください。
| カテゴリ | 配列 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $reverseArray: <array> }
⚙️ パラメータ
| 配列 | 逆順にする配列式。 |
|---|
戻り値:逆順にした新しい配列。配列以外の引数はバージョンにより null または例外になります
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $reverseArray: 最新メッセージを先頭に
db.chats.aggregate([
{ $project: {
latestFirst: { $reverseArray: '$messages' }
} }
])
出力:
{ '_id': 1, 'latestFirst': [ 'm3', 'm2', 'm1' ] }
📌 注意事項
- 新しい配列を返し、元のフィールドは変更されない
- 反転するのは外側の配列だけ。入れ子の配列は順序を保つ
- 配列以外の引数は 5.0 以降 null、それ以前はエラー。アップグレード時に注意
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$reverseArray は元の配列を変更しますか?
Aいいえ — 集計式は純粋で、新しい配列を返します。
Q配列以外の引数では?
A5.0 より前はエラー、5.0 以降は null です。先に $isArray でチェックしてください。
Q入れ子の配列も反転されますか?
A外側の層だけが反転され、内側の配列は順序を保ちます。