Introduction to MongoDB $sort Operator

MongoDB is a high-performance, document-oriented NoSQL database with flexible data modeling and querying capabilities. The $sort operator is an important operator in the MongoDB query language, used to sort query results by specified fields.


The syntax of the $sort operator is as follows:

{ $sort: { <field1>: <sort order>, <field2>: <sort order>, ... } }

Here, $sort is the operator, <field1>, <field2>, etc. are the names of the fields to be sorted, and <sort order> indicates the sorting direction, which can be 1 (ascending) or -1 (descending).

Use Cases

The $sort operator is suitable for query scenarios that require sorting by specified fields. For example, when sorting orders by time or sales, the $sort operator can be used. In addition, the $sort operator can be used in combination with other query operators, such as the $match operator and the $group operator, to achieve more complex queries.


Here is a complete example of using the $sort operator. Assume there is a sales collection that contains the following documents:

{ _id: 1, product: "A", quantity: 10, price: 2 }
{ _id: 2, product: "B", quantity: 5, price: 4 }
{ _id: 3, product: "C", quantity: 20, price: 1 }
{ _id: 4, product: "D", quantity: 15, price: 3 }
{ _id: 5, product: "E", quantity: 8, price: 5 }

Now, we need to sort these products by sales. The following query can be used:

  { $project: { product: 1, sales: { $multiply: ["$quantity", "$price"] } } },
  { $sort: { sales: -1 } }

This query first uses the $project operator to multiply the quantity and price fields to generate a new sales field. Then, using the $sort operator, it sorts the query results in descending order by the sales field. The final query result is as follows:

{ _id: 5, product: "E", sales: 40 }
{ _id: 2, product: "B", sales: 20 }
{ _id: 4, product: "D", sales: 45 }
{ _id: 1, product: "A", sales: 20 }
{ _id: 3, product: "C", sales: 20 }


The $sort operator is a very useful operator in the MongoDB query language, which can sort query results by specified fields and supports ascending and descending sorting. By combining with other query operators, more complex queries can be achieved. In practical applications, it is necessary to choose the appropriate sorting method according to the actual scenario and balance between performance and query result accuracy.