[已解决]mongodb时间排序的问题
业务背景
- 我想按照时间排序
- 取最近一条数据
遇到的困难
- 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你这是字符串,字符串排序是逐字节比较的,当然得不到正确的顺序了。改为日期时间类型即可。