Mongoose中哪个SchemaType最适合时间戳?
我正在使用Mongoose,MongoDB和Node。
我想定义一个模式,其中一个字段是date\时间戳。
我想使用此字段以返回在过去5分钟内更新的所有logging。
由于在Mongoose我不能使用Timestamp()方法的事实我明白,我唯一的select是使用下面的Javascript方法:
time : { type: Number, default: (new Date()).getTime() }
这可能不是查询一个庞大的数据库的最有效的方法。 我真的很感激,如果有人可以分享一个更有效的方式来实现这一点。
有没有什么办法可以用Mongoose来实现这一点,并能够使用MongoDB的时间戳?
编辑 – 2016年3月20日
mongoose现在支持集合的时间戳 。
请考虑下面的@bobbyz的答案。 也许这是你在找什么。
原始答案
Mongoose支持Date
types(基本上是一个时间戳):
time : { type : Date, default: Date.now }
有了上面的字段定义,任何时候你用一个未设置的time
字段保存一个文档,Mongoose将用当前时间填充这个字段。
来源: http : //mongoosejs.com/docs/guide.html
当前版本的Mongoose(v4.x)具有时间戳作为模式的内置选项:
var mySchema = new mongoose.Schema( {name: String}, {timestamps: true} );
此选项添加了使用Date
进行时间戳的updatedAt
和updatedAt
属性,并为您完成所有工作。 updatedAt
更新文档时,都会更新updatedAt
属性。 架构时间戳文档。
我想使用这个字段为了返回最近5分钟内更新的所有logging。
这意味着每次保存对象时都需要将date更新为“now”。 也许你会发现这个有用的: Moongoose创build修改的插件