Open In App

MongoDB $reverseArray Operator

Last Updated : 07 Mar, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

MongoDB is a powerful NoSQL database designed for scalability and flexibility. One of the most useful features MongoDB offers is its ability to handle arrays within documents. The MongoDB $reverseArray operator is part of the aggregation pipeline, allowing developers to easily reverse the order of elements within an array. This can be particularly useful for sorting, data processing, or presentation purposes.

What is MongoDB $reverseArray Operator?

MongoDB $reverseArray Operator is useful when we need to reverse the order of elements in an array for processing or presentation purposes. $reverseArray provides a straightforward way to manipulate array data in MongoDB. $reverseArray takes an array as an input and returns a new array with the elements in reversed order. $reverse array operator provides an easy way to change the order of array elements and reverse it.

Syntax:

{ $reverseArray: <array expression> }

Key Term:

  • <array expression>: This represents the array whose order you want to reverse. It can be a field containing an array, an inline array, or any valid array expression.

Key Features of MongoDB $reverseArray

  • Reverses Array Order: The operator effectively reverses the order of the array elements, making it highly useful for sorting operations.
  • Non-destructive Operation: The original array is not modified. A new array with the reversed order is returned.
  • Handles null and Missing Fields: If the specified field is missing or resolves to null, the operator will return null.
  • Works with Nested Arrays: The operator only reverses the top-level elements in the array. Nested arrays remain unchanged.

Common Use Cases for MongoDB $reverseArray

  • Reversing Data for Display: For applications that require showing data in reverse order (e.g., reversing a list of comments or timestamps), the $reverseArray operator is a perfect fit.
  • Reversing List Order: When you need to process a list of operations from the last element to the first, reversing an array becomes necessary.
  • Custom Sorting: The $reverseArray operator can help when MongoDB’s default sorting does not fit your needs, and you need a customized order.

Examples of MongoDB $reverseArray

To help us understand how the MongoDB $reverseArray operator works in real-world scenarios, let’s explore some practical examples. In these examples, we will work with a sample collection named arrayExample that contains various fields with arrays.

  • Database: GeeksforGeeks
  • Collection: arrayExample
  • Document: three documents that contain the details in the form of field-value pairs.

demo database and collection

Example 1: Using $reverseArray Operator

In this example, we are going to reverse the value of the numbers2 field using $reverseArray operator. Here, the value of the numbers2 field is an array and the elements of the array are numbers.

Query:

db.arrayExample.aggregate([
... {$match: {name: "Lolo"}},
... {$project: {
... revNumbers: {$reverseArray: "$numbers2"}}}])

Output:

using $reversearray operator example output

Explanation:

  • The original numbers2 array contains [1, 2, 3, 4, 5, 6].
  • The $reverseArray operator reverses this array, and the result is [6, 5, 4, 3, 2, 1].

Example 2: Using $reverseArray Operator on Array of Strings

In this example, we are going to reverse the value of the fruits field using $reverseArray operator. Here, the value of the fruits field is an array and the elements of the array are strings(i.e. fruits names).

Query:

db.arrayExample.aggregate([
... {$match: {name: "Bongo"}},
... {$project: {
... revStrings: {$reverseArray: "$fruits"}}}])

Output:

using $reversearray operator on array of strings example output

Explanation:

  • The original fruits array is ["Apple", "Banana", "Carrot", "Lettuce"].
  • The $reverseArray operator reverses it to ["Lettuce", "Carrot", "Banana", "Apple"].

Example 3: Using $reverseArray Operator in the Embedded Document

In this example, we are going to reverse the value of the favGame.outdoorGames field using $reverseArray operator. Here, the value of the favGame.outdoorGames field is an array and the elements of the array are strings(i.e. outdoor games names).

Query:

db.arrayExample.aggregate([
... {$match: {name: "Piku"}},
... {$project: {
... result: {$reverseArray: "$favGame.outdoorGames"}}}])

Output:

using $reversearray operator in the embedded document example output

Explanation:

  • The original favGame.outdoorGames array is ["Table Tennis", "Chess", "Uno", "Snooker"].
  • After applying the $reverseArray operator, the result is ["Snooker", "Uno", "Chess", "Table Tennis"].

Important Points for Using $reverseArray

When using the MongoDB $reverseArray operator, keep in mind the following considerations:

  1. Array Expression: The argument passed to $reverseArray must resolve to a valid array. If it is not an array (or resolves to null or a missing field), the operator will return null.
  2. Empty Arrays: If the input array is empty, the operator will return an empty array, which may be useful in some cases where you want to handle edge cases.
  3. Subarrays: The operator only reverses the top-level elements. If your array contains nested arrays, these subarrays will remain unaffected by the reversal.

Conclusion

The MongoDB $reverseArray operator offers a convenient way to reverse the order of elements in an array, providing flexibility in array manipulation within MongoDB documents. Its straightforward syntax and ability to handle various scenarios make it a valuable tool for developers working with array data in MongoDB. By mastering this operator, we can manipulate and transform array data effectively within MongoDB aggregation pipelines. Whether you’re reversing an array of numbers, strings, or nested documents, this operator gives us the flexibility to meet our specific data-processing needs.



Next Article

Similar Reads