MongoDB Date.now()格式不同于new Date(string)格式



我正在努力理解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"这样的字符串,那么这些字符串的字典排序将按照时间顺序排列。

最新更新