2

为什么我要存储为 ISODate 而不是简单的文本?

4

2 回答 2

6

ISODate在 MongoDB 中只是一个函数,它为通常的 JavaScript Date构造函数提供了一个友好的包装器。当你在 MongoDB 中这样说时:

ISODate('2011-11-05T18:33:25Z')

你说的是同样的事情:

new Date(1320518005000);

但人类阅读ISO 8601日期比阅读自 1970 年 1 月 1 日以来的毫秒数要容易得多。

因此, usingISODate为您提供了数据库中的一个真实 Date 对象,您可以在该对象上调用方法(例如getMonth),同时还可以轻松查看其值。如果您使用字符串作为日期,那么当您必须使用日期时,您将一直在解析字符串。一个例子是做一个map/reduce来聚合每月数据;您可以解析字符串以提取月份,但是当您可以使用知道月份是什么的真实日期对象时,为什么还要为此烦恼呢?

于 2011-11-05T18:42:09.203 回答
0

根据这个来源

有很多可用的格式,其中大多数与其他格式不兼容,以至于在为国际、跨文化的读者写作时选择日期表示可能是一场可用性噩梦,就像在网络上的情况一样。幸运的是,在 ISO 开发的国际日期格式中有一种解决方案。

于 2011-11-05T18:24:57.727 回答