MongoDB - 将DateTime保存为null?

时间:2014-09-16 16:13:54

标签: mongodb

我可以在MongoDB中将DateTime保存为null吗?

原谅我的无知,我继承了这个项目,我对Mongo并不那么熟悉。在查看MongoVUE时,它会显示DateTime并保存为ISO字符串,但type is not included when I look at the Mongo docs

2 个答案:

答案 0 :(得分:0)

  1. 不要使用MongoVUE。使用RoboMongo。它更好,支持,适用于所有平台,最后但并非最不重要的是它是免费的。
  2. 我猜MongoVUE的意思是Date
  3. 由于mongoDB是无架构的,因此您可以在任何字段中保存任何类型的数据。

答案 1 :(得分:0)

ISO日期/时间字符串的格式为

YYYY-MM-DDTHH:mm[:ss[.SSS]]TimeZoneOffset|"Z"

因此,例如,在我当地时间(大约)写作的时间将是

2014-09-16T18:59+02:00

字母T通知您日期和时间彼此分开。因此,在解析ISODate字符串时,您可以绝对肯定地确定" T"之前的部分。是一个日期,T之后的部分是时间。

" Z"来自北约字母命名的Zulu字母,历史上表示自60年代以来本身等于UTC的北约标准时间。因此,对于简短表示法,本函将提及UTC。写这篇文章的时间写成

2014-09-16T16:59:00.000Z
UTC中的

然而,在MongoDB中保存日期很简单。 MongoDB数据库驱动程序通常将您使用的编程语言的本机日期/日期时间类型映射到MongoDB内部保存时使用的格式,反之亦然。从数据库加载数据时。

所以例如,做

这样的事情是完全有效的
var doc = { name:"FooBar", added: new Date()};
db.collection.save({doc});

在JavaScript中或使用Java的java.util.Date

然而,您在文档中发现了一点不一致。虽然您提到的文档中的类型称为日期,但它在内部存储为BSON日期。 BSON日期本身存储为一个64位整数,保持自epoch以来的毫秒数,并由mongo shell和(某些MongoDB驱动程序的选项iirc)转换为ISO日期格式化字符串。

是的,您可以为每个给定字段保存并处理空值。