我原本期望具有Date属性的对象将作为ISODate从客户端或服务器端保存在Mongo中,但事实并非如此。
当我这样做时
if (Meteor.is_client()){
Collection.insert({text : "Client", number : 1, date : new Date() });
Collection.insert({text : "Client", number : 2, date : (new Date()).getTime() });
}
else {
Collection.insert({text : "Server", number : 1, date : new Date() });
}
在mongo中它会像这样保存
{_id : "xx-xx-xx-xx-xx", text : "Client", number : 1, date : "2012-08-21T18:40:47.446" }
{_id : "xx-xx-xx-xx-xx", text : "Client", number : 2, date : 1345574805367 }
{_id : "xx-xx-xx-xx-xx", text : "Server", number : 1, date : ISODate(2012-08-21T18:40:47.446)
有没有办法将客户端的Date属性保存为ISODate?
答案 0 :(得分:4)
对我来说,我不会从客户端发送时间戳。相反,我在Collection.allow
分支下通过auth
函数插入时修改了文档。
我认为这样做有几个好处 -
客户端不需要插入日期字段,这样可以保存代码。
时间戳基于服务器时间,而不是客户端, 这应该更准确。
最后,字段值是ISODate,而不是字符串。 (讨厌 不支持本机日期类型的JSON)