自加载Unix纪元以来,将mongo存储日期转换回毫秒数?

Ed *_*ffe 15 date mongoose mongodb node.js

我正在使用Mongoose和Node.js作为我的网络服务器.

作为我的一个文档模式的一部分,我有一个'timestamp'字段.架构中的行是: timestamp: { type: Date, default: Date.now }

这工作正常,并允许我根据时间戳检索文档,但是,这保存为ISODate格式,如下所述:http://docs.mongodb.org/manual/core/document/#date ,如下所示:

"timestamp":"2013-04-04T19:31:38.514Z"

我不介意,但我把它发送给客户端.这意味着我必须在客户端使用Date.parse()才能进行比较操作.

有没有办法将日期存储为整数,或者在检索时自动将其转换为1?

有什么理由我应该保留它是如何,并在客户端处理它?

提前致谢.

Joh*_*yHK 16

您可以在模式上添加数字毫秒版本timestamp作为虚拟属性:

schema.virtual('timestamp_ms').get(function() {
  return this.timestamp.getTime();
});
Run Code Online (Sandbox Code Playgroud)

然后,您可以toObject通过架构上的选项启用虚拟字段包含在模型实例的调用中:

var schema = new Schema({
  timestamp: Date
}, {
  toObject: { getters: true }
});
Run Code Online (Sandbox Code Playgroud)


Pra*_*and 7

var schema = new Schema({
  timestamp: {type:Number, default: new Date().getTime()}
});
Run Code Online (Sandbox Code Playgroud)

希望这能解决您的问题.