[已解决]mongodb时间排序的问题

发布于 2022-09-11 19:00:09 字数 1956 浏览 9 评论 0

业务背景

  • 我想按照时间排序
  • 取最近一条数据

遇到的困难

  • 2019年3月总是比2019年4月要大
  • 可正常情况来说,3月不是应该比4月要小么

示例代码

升序查询

> db.getCollection("cash-infos").find({},{createdAt:1}).sort({createdAt: 1})

{ "_id" : ObjectId("5caa78992f26e525a86085d2"), "createdAt" : "Mon Apr 08 2019 06:23:46 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa80e83de43925c80353a7"), "createdAt" : "Mon Apr 08 2019 06:57:37 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa81723de43925c80353a8"), "createdAt" : "Mon Apr 08 2019 06:57:37 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa823491e61b3660367fd2"), "createdAt" : "Mon Apr 08 2019 07:05:20 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa8252d660a42d2cbb6bb2"), "createdAt" : "Mon Apr 08 2019 07:05:50 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa82a4f0d94e34c4eecf46"), "createdAt" : "Mon Apr 08 2019 07:07:12 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5c7efc6b495b71617c42a9ce"), "createdAt" : "Wed Mar 06 2019 06:45:39 GMT+0800 (中国标准时间)" }

降序查询

> db.getCollection("cash-infos").find({},{createdAt:1}).sort({createdAt: -1})

{ "_id" : ObjectId("5c7efc6b495b71617c42a9ce"), "createdAt" : "Wed Mar 06 2019 06:45:39 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa82a4f0d94e34c4eecf46"), "createdAt" : "Mon Apr 08 2019 07:07:12 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa8252d660a42d2cbb6bb2"), "createdAt" : "Mon Apr 08 2019 07:05:50 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa823491e61b3660367fd2"), "createdAt" : "Mon Apr 08 2019 07:05:20 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa80e83de43925c80353a7"), "createdAt" : "Mon Apr 08 2019 06:57:37 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa81723de43925c80353a8"), "createdAt" : "Mon Apr 08 2019 06:57:37 GMT+0800 (中国标准时间)" }
{ "_id" : ObjectId("5caa78992f26e525a86085d2"), "createdAt" : "Mon Apr 08 2019 06:23:46 GMT+0800 (中国标准时间)" }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆悲凉 2022-09-18 19:00:09

你这是字符串,字符串排序是逐字节比较的,当然得不到正确的顺序了。改为日期时间类型即可。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文