what is MongoDB: Sort Documents By Date

MongoDB is a document-based, NoSQL database that allows developers to store and query their data in a flexible, JSON-like format. It also provides a powerful way to sort documents by date, allowing developers to easily query and analyze data over time. This feature makes MongoDB an ideal solution for applications that require chronological data analysis.


You can use the following methods to sort documents by a date field in MongoDB:

Method 1: Sort by Date Ascending

db.sales.find().sort({"date_field": 1})

Method 2: Sort by Date Descending

db.sales.find().sort({"date_field": -1}) 

The following examples show how to use each method with a collection sales with the following documents:

db.sales.insertOne({day: new Date("2020-01-20"), amount: 40})
db.sales.insertOne({day: new Date("2020-01-21"), amount: 32})
db.sales.insertOne({day: new Date("2020-01-22"), amount: 19})
db.sales.insertOne({day: new Date("2020-01-23"), amount: 29})
db.sales.insertOne({day: new Date("2020-01-24"), amount: 35})

Example 1: Sort by Date Ascending

We can use the following code to sort all of the documents by date in ascending order:

db.sales.find().sort({"day": 1}) 

This query returns the following results:

{ _id: ObjectId("6189401696cd2ba58ce928fa"),
  day: 2020-01-20T00:00:00.000Z,
  amount: 40 }

{ _id: ObjectId("6189401696cd2ba58ce928fb"),
  day: 2020-01-21T00:00:00.000Z,
  amount: 32 }

{ _id: ObjectId("6189401696cd2ba58ce928fc"),
  day: 2020-01-22T00:00:00.000Z,
  amount: 19 }

{ _id: ObjectId("6189401696cd2ba58ce928fd"),
  day: 2020-01-23T00:00:00.000Z,
  amount: 29 }

{ _id: ObjectId("6189401696cd2ba58ce928fe"),
  day: 2020-01-24T00:00:00.000Z,
  amount: 35 }

Notice that the document with the oldest date (2020-01-20) appears first while the document with the most recent date (2020-01-24) appears last.

Example 2: Sort by Date Descending

We can use the following code to sort all of the documents by date in descending order:

db.sales.find().sort({"day": -1}) 

This query returns the following results:

{ _id: ObjectId("6189401696cd2ba58ce928fe"),
  day: 2020-01-24T00:00:00.000Z,
  amount: 35 }

{ _id: ObjectId("6189401696cd2ba58ce928fd"),
  day: 2020-01-23T00:00:00.000Z,
  amount: 29 }

{ _id: ObjectId("6189401696cd2ba58ce928fc"),
  day: 2020-01-22T00:00:00.000Z,
  amount: 19 }

{ _id: ObjectId("6189401696cd2ba58ce928fb"),
  day: 2020-01-21T00:00:00.000Z,
  amount: 32 }

{ _id: ObjectId("6189401696cd2ba58ce928fa"),
  day: 2020-01-20T00:00:00.000Z,
  amount: 40 }

Notice that the document with the most recent date (2020-01-24) appears first while the document with the oldest date (2020-01-20) appears last.

Note: You can find the complete documentation for the sort function .

The following tutorials explain how to perform other common operations in MongoDB:

x