我将开始在一个项目中使用 MongoDB 并进行以下观察: 'Date' 必须是一个有效的时间点,并且不能为 NULL。
使用 MongoDB,我们不能存储 NULL 日期,所以我猜最好的办法是简单地从我们的文档中排除日期字段。
例如,如果我有一个“汽车”文档和一个名为“ date_sold ”的字段。如果汽车尚未售出,我只需从文档中排除此字段。汽车售出后,我可以添加 'date_sold' 字段。
通过执行上述操作,我假设我可以查询已售或未售汽车的记录。这是在 MongoDB 中处理“空”或空日期的推荐方法吗?
PS 我的困惑源于这样一个事实,因为 SQL 有一个架构,日期或日期时间字段可以存储为 NULL,但在 MongoDB 中,“日期”字段不能为 NULL,并且必须是一个有效的时间点。
MongoDB 类型是BSON
如果你去DATE那里打字,你会读到:
BSON Date 是一个 64 位整数,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。这导致可表示的日期范围为过去和未来约 2.9 亿年。
因此,您需要为每个数据类型定义本身提供一个“时间点”。
Jan 1, 1970通常使用Unix Epoch ->null来遵循大多数处理此类日期的数据库系统上的良好实践(如果您不需要使用与这些日期一样古老的日期)。
还要记住这一点:
BSON 日期类型有符号。负值代表 1970 年之前的日期。
所以,你也可以为你的开发设置一个约定的默认值,那就是为了这个目的。例如:
Jan 1, 1900
我希望你能明白这一点。
更多提示:由于通常
json结构可能会在不同的步骤中进行验证,因此我强烈建议您维护该字段,并使用约定值NULL在您的系统下表示。
| 归档时间: |
|
| 查看次数: |
3762 次 |
| 最近记录: |