$reverseArray (Reverse Array Order)
Last updated: 2026-10-09
$reverseArray (Reverse Array Order)
$reverseArray reverses the order of elements in an array and returns a new array. Typical uses include flipping time-ascending records into descending order and putting the newest message first. It reverses only the outer array; nested arrays keep their internal order. Non-array arguments threw an error before MongoDB 5.0 and return null afterwards, so guard uncertain fields with $isArray.
| Category | Array |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $reverseArray: <array> }
⚙️ Parameters
| array | The array expression to reverse. |
|---|
Returns:A new array in reversed order; non-array arguments yield null or throw depending on version
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $reverseArray: newest message first
db.chats.aggregate([
{ $project: {
latestFirst: { $reverseArray: '$messages' }
} }
])
Output:
{ '_id': 1, 'latestFirst': [ 'm3', 'm2', 'm1' ] }
📌 Notes
- Returns a new array; the source field is untouched
- Only the outer array is reversed; nested arrays keep their order
- Non-array arguments return null since 5.0 but threw before; watch out when upgrading
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QDoes $reverseArray mutate the original array?
ANo — aggregation expressions are pure; it returns a new array.
QWhat about non-array arguments?
AThrows before 5.0, returns null since 5.0; check with $isArray first.
QAre nested arrays reversed too?
AOnly the outer layer is reversed; inner arrays keep their order.