mongodb - 在 MongoDB 中存储日期的最佳方式是什么?

我刚开始学习 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/

相关文章:

mongodb - mongoexport 聚合导出到 csv 文件

mongodb - 在键值数据存储中存储目录层次结构

node.js - 如何在 Mongoose 中执行 id 数组查询?

ubuntu - MongoDB 仅在 Ubuntu 上以 root 身份运行时才有效 - 数据目录

mongodb - Mongorestore 到不同的数据库

php - Mongodb php获取新文档的ID?

mongodb - 在单个查询中从 mongo 中删除多个文档

java - 如何使用 Java 驱动程序为 MongoDB 构建 $or 查询?

ruby-on-rails - Mongoid 3 + Heroku (MongoHQ) 导致 Mo

mongodb - 在 Mongo Compass 上按 ObjectId 搜索