与简单文本相比,将日期作为 ISODate 存储在数据库中有何优点?
为什么我想要存储为 ISODate 而不是简单的文本?
Why would I want to store as ISODate as opposed to simple text?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
为什么我想要存储为 ISODate 而不是简单的文本?
Why would I want to store as ISODate as opposed to simple text?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
MongoDB 中的
ISODate
只是一个函数,提供常用 JavaScript Date 构造函数的友好包装。当你在 MongoDB 中这样说时:你说的是同样的事情:
但是人类可以阅读 ISO 8601< /a> date 比读取自 1970 年 1 月 1 日以来的毫秒数要容易得多。
因此,使用
ISODate
会在数据库中为您提供一个真实的 Date 对象,您可以在该对象上调用方法(例如getMonth
)同时也能够轻松地了解其价值。如果您使用字符串作为日期,那么当您必须处理日期时,您将一直解析字符串。一个例子是使用 map/reduce 来汇总每月数据;您可以解析字符串以提取月份,但是当您可以使用知道月份的真实日期对象时,为什么要费心呢?ISODate
in MongoDB is just a function that provides a friendly wrapper for the usual JavaScript Date constructor. When you say this in MongoDB:You're saying the same thing as:
but a human can read an ISO 8601 date a lot easier than they can read the number of milliseconds since January 1 1970.
So, using
ISODate
gives you a real Date object in the database that you can call methods on (such asgetMonth
) while also being able to easily eye ball its value. If you used a string for the date, then you'd be parsing strings all the time when you had to work with your dates. An example would be doing a map/reduce to aggregate monthly data; you could parse the strings to extract the month but why bother with that when you can use a real date object that knows what months are?根据此来源:
According to this source: