【发布时间】:2011-11-05 18:07:32
【问题描述】:
我为什么要存储为 ISODate 而不是简单的文本?
【问题讨论】:
标签: mongodb datetime isodate database
我为什么要存储为 ISODate 而不是简单的文本?
【问题讨论】:
标签: mongodb datetime isodate database
ISODate 在 MongoDB 中只是一个函数,它为通常的 JavaScript Date 构造函数提供了一个友好的包装器。当你在 MongoDB 中这样说时:
ISODate('2011-11-05T18:33:25Z')
你说的是同样的事情:
new Date(1320518005000);
但人类阅读ISO 8601 日期比阅读自 1970 年 1 月 1 日以来的毫秒数要容易得多。
因此,使用ISODate 可以在数据库中为您提供一个真实的 Date 对象,您可以在该对象上调用方法(例如getMonth),同时还可以轻松查看其值。如果您使用字符串作为日期,那么当您必须使用日期时,您将一直在解析字符串。一个例子是使用map/reduce 来汇总每月数据;你可以解析字符串来提取月份,但是当你可以使用一个知道月份是什么的真实日期对象时,为什么还要为此烦恼呢?
【讨论】:
根据this source:
有很多可用的格式,其中大多数不兼容 其他人,选择日期可能是可用性的噩梦 为国际、跨文化写作时的代表性 观众,就像网络上的情况一样。幸运的是,有一个 采用 ISO 开发的国际日期格式的解决方案。
【讨论】: