gpt4 book ai didi

json - MongoDB:我应该使用字符串而不是日期吗?

转载 作者:可可西里 更新时间:2023-11-01 09:56:33 26 4
gpt4 key购买 nike

在我使用带有 JSON 的 angular、node 和 mongodb 的 Web 项目中,JSON 序列化程序本身不支持日期。此问题有一个解决方法,如图所示 here .但是,我想知道在 MongoDB 中将日期保存为日期对象而不是字符串有什么好处?我对这个项目了解不多,所以我看不出有什么不同。

最佳答案

通过将日期保存为字符串而不是日期,您会错过一些非常有用的功能:

  1. MongoDB 可以使用 $gt$lt 查询日期范围。
  2. 在 3.0 版中,聚合框架获得了 many useful aggregation operators for date handling .这些都不适用于字符串,而且很少有字符串运算符可以充分替代它们。
  3. MongoDB 日期在 UNIX 纪元中进行内部处理,因此保存来自不同时区的时间戳或夏令时等讨厌的细节不是问题。
  4. BSON 日期只有 8 个字节。 YYYYMMDD 的最小形式的日期是 12 字节(BSON 中的字符串以 4 字节整数作为长度前缀)。当您将其存储为使用 ISO 8601 标准必须提供的所有内容(日期、精确到毫秒的时间和时区)的 ISODate 字符串时,您将拥有 32 字节 - 四倍的存储空间。

您需要知道这些对您的项目是否重要。

当你真的想避免使用 BSON 日期类型时,你应该考虑将你的日期存储为一个数字,代表自一个固定时间点以来经过的毫秒/秒/小时/天(无论适合你的用例)而不是字符串。这样您就可以保留除第 2 点以外的所有优势。

关于json - MongoDB:我应该使用字符串而不是日期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com