我可以在MongoDB中将DateTime保存为null吗?
原谅我的无知,我继承了这个项目,我对Mongo并不那么熟悉。在查看MongoVUE时,它会显示DateTime并保存为ISO字符串,但type is not included when I look at the Mongo docs。
答案 0 :(得分:0)
Date
。 答案 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日期格式化字符串。
是的,您可以为每个给定字段保存并处理空值。