【发布时间】:2021-10-02 15:10:07
【问题描述】:
如果我保存这样的字段,我很难理解 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 date doc和类似的so question。
-
请注意,您的客户端应用程序/shell 可能会根据某些应用程序设置和/或区域设置数据格式化日期值。您使用哪个应用程序/shell?
-
我在 vscode 上使用 Node
-
@NathanBernard 没有限制,可以任意格式保存,推荐使用
new Date()表示ISODate格式,在mongodb中会保存为BSON$date类型。因为它几乎支持我们在数字时间戳中所做的所有操作。还有很多Date aggregation operators。 -
您的时间戳是 ECMA-262 支持的格式之一,用于由 Date.parse 解析,它返回一个时间值。所以考虑
date: Date.parse("2021-08-27T19:00:38.000+00:00"),它等价于date: new Date("2021-08-27T19:00:38.000+00:00").getTime(),但输入更少。
标签: javascript mongodb date