4

我期待具有 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?

4

1 回答 1

4

对我来说,我不会从客户端发送时间戳。相反,我在通过分支Collection.allow下的函数插入时修改了文档。auth

我认为这样做有几个好处-

  • 客户端无需插入日期字段,节省代码。

  • 时间戳是基于服务器时间的,而不是客户端的,应该更准确。

  • 最后,字段值是 ISODate,而不是字符串。(讨厌不支持原生日期类型的 JSON)

于 2012-08-22T01:24:03.860 回答