为什么我要将其存储为ISODate而不是简单文本?
ISODate
在MongoDB中只是一个为常用的JavaScript Date构造函数提供友好包装的函数.当你在MongoDB中这样说时:
ISODate('2011-11-05T18:33:25Z')
你说的是同样的话:
new Date(1320518005000);
但人类可以阅读ISO 8601日期比阅读1970年1月1日以来的毫秒数要容易得多.
因此,using ISODate
会在数据库中为您提供一个真实的Date对象,您可以在其上调用方法(例如getMonth
),同时还能够轻松地将其值视为其值.如果您使用字符串作为日期,那么当您必须处理日期时,您将一直在解析字符串.一个例子是做map/reduce来汇总月度数据; 你可以解析字符串来提取月份,但是当你可以使用知道几个月的真实日期对象时,为什么还要烦恼呢?