Mongodb:如何按日期对文档进行排序
您可以使用以下方法在 MongoDB 中按日期字段对文档进行排序:
方法一:按日期升序排序
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:如何按多个字段分组