Вы можете использовать следующие методы для сортировки документов по полю даты в MongoDB:
Способ 1: сортировать по дате по возрастанию
db.sales.find().sort({" date_field ": 1 })
Способ 2: сортировка по дате по убыванию
db.sales.find().sort({" date_field ": -1 })
В следующих примерах показано, как использовать каждый метод при продаже коллекции со следующими документами:
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 })
Пример 1: сортировка по возрастанию даты
Мы можем использовать следующий код для сортировки всех документов по дате в порядке возрастания:
db.sales.find().sort({" day ": 1 })
Этот запрос возвращает следующие результаты:
{ _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 }
Обратите внимание, что документ с самой старой датой (2020-01-20) отображается первым, а документ с самой последней датой (2020-01-24) — последним.
Пример 2: сортировка по дате по убыванию
Мы можем использовать следующий код для сортировки всех документов по дате в порядке убывания:
db.sales.find().sort({" day ": -1 })
Этот запрос возвращает следующие результаты:
{ _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 }
Обратите внимание, что документ с самой последней датой (2020-01-24) отображается первым, а документ с самой старой датой (2020-01-20) — последним.
Примечание.Полную документацию по функции сортировки можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:
MongoDB: как добавить новое поле
MongoDB: как удалить поле
MongoDB: как группировать и считать
MongoDB: как сгруппировать по нескольким полям