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 here.
Additional Resources
The following tutorials explain how to perform other common operations in MongoDB:
MongoDB: How to Add a New Field
MongoDB: How to Remove a Field
MongoDB: How to Group By and Count
MongoDB: How to Group By Multiple Fields