我正在努力理解MongoDB日期格式背后的逻辑,如果我保存这样一个字段:
date: Date.now()
在数据库中看起来像:
date: 1633186879027
我有一个日期如2021-08-27T19:00:38.000+00:00
,我保存它如下:
date: "2021-08-27T19:00:38.000+00:00"
在数据库中看起来像:
date: "2021-08-27T19:00:38.000+00:00"
这不是我想要的因为它是一个字符串我不能按日期排序
所以我试着这样保存它:
date: new Date("2021-08-27T19:00:38.000+00:00")
在数据库中看起来像:
date: 2021-08-27T19:00:38.000+00:00
没有括号,因为Mongodb对字符串,所以不能是字符串
我应该如何保存它,使它看起来像第一个(1633186879027
)?因为我需要按日期排序我认为这是正确的格式吗?
MongoDB使用BSON存储数据。定义在这里
日期时间存储为从1970-01-01开始的64位整数。
Date.now()
返回一个整数,因此样本数据将存储为BSON类型x12
,值为1633186879027
。
new Date("2021-08-27T19:00:38.000+00:00")
将存储为BSON类型x09
,值为1630090838000
。
输出date: 2021-08-27T19:00:38.000+00:00
是由客户端的驱动程序或应用程序在检索后生成的。
MongoDB直接支持日期排序
还请注意,如果您将日期存储为像"2021-08-27T19:00:38.000+00:00"
这样的字符串,那么这些字符串的字典排序将按照时间顺序排列。