我刚开始学习 MongoDB,希望能慢慢从 MySQL 迁移过来。
在 MySQL 中,有两种不同的数据类型 - DATE ('0000-00-00')
和 DATETIME ('0000-00-00 00:00:00')
。在我的 MySQL 中,我使用 DATE
类型,但我不确定如何将它们传输到 MongoDB。在 MongoDB 中,有一个 Date
对象,相当于 DATETIME
。使用 Date
对象似乎是最合适的,但这会浪费空间,因为没有使用小时、分钟、秒。另一方面,将日期存储为字符串似乎是错误的。
在 MongoDB 中存储日期 ('0000-00-00')
是否有黄金标准?
最佳答案
我实际上正在转换 MongoDB 数据库,其中日期存储为正确的 Date() 类型,而不是将它们存储为 yyyy-mm-dd
形式的字符串。为什么,考虑到所有其他回答者都说这是一个可怕的想法?简而言之,由于我一直在尝试在 JavaScript 中使用日期而遭受无休止的痛苦,它没有(真正的)时区概念。我一直在 MongoDB 中存储 UTC 日期,即一个 Date() 对象,其中包含我想要的日期和时间设置为午夜 UTC,但是将用户提交的日期从他们的任何时区正确转换为出乎意料的复杂和容易出错碰巧在。我一直在努力让我的 JavaScript“无论本地时区到 UTC”代码工作(是的,我知道 Sugar.js 和 Moment.js),我已经决定像这样的简单字符串好的旧 MySQL 标准 yyyy-mm-dd
是要走的路,我将在客户端运行时根据需要解析为 Date() 对象。
顺便说一句,我还尝试将此 MongoDB 数据库与 FileMaker 数据库同步,该数据库也没有时区的概念。对我来说,简单地不存储时间数据,尤其是当它像 UTC 午夜一样毫无意义时,有助于确保代码更少错误,即使我必须不时地解析字符串日期。 p>
https://stackoverflow.com/questions/6764821/