Lia*_*atz 63 schema mongoose mongodb node.js
我正在使用Mongoose,MongoDB和Node.
我想定义一个架构,其中一个字段是date\timestamp.
我想使用此字段以返回在过去5分钟内已更新的所有记录.
由于在Mongoose中我不能使用Timestamp()方法,我理解我唯一的选择是使用以下Javascript方法:
time : { type: Number, default: (new Date()).getTime() }
Run Code Online (Sandbox Code Playgroud)
它可能不是查询庞大数据库的最有效方式.如果有人可以分享一种更有效的方式来实现这一点,我将非常感激.
有没有办法用Mongoose实现这个并且能够使用MongoDB时间戳?
dri*_*hev 108
编辑 - 2016年3月20日
Mongoose现在支持集合的时间戳.
请考虑以下@bobbyz的答案.也许这就是你要找的东西.
Mongoose支持一种Date
类型(基本上是一个时间戳):
time : { type : Date, default: Date.now }
Run Code Online (Sandbox Code Playgroud)
使用上述字段定义,只要您使用未设置time
字段保存文档,Mongoose就会使用当前时间填写此字段.
资料来源:http://mongoosejs.com/docs/guide.html
bob*_*byz 96
当前版本的Mongoose(v4.x)将时间戳记作为模式的内置选项:
var mySchema = new mongoose.Schema( {name: String}, {timestamps: true} );
Run Code Online (Sandbox Code Playgroud)
此选项添加了带有时间戳的a createdAt
和updatedAt
属性Date
,并为您完成所有工作.每次更新文档时,它都会更新updatedAt
属性.架构时间戳文档.
ceg*_*ash 22
如果您想为您的createdAt
和updatedAt
const mongoose = require('mongoose');
const { Schema } = mongoose;
const schemaOptions = {
timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' },
};
const mySchema = new Schema({ name: String }, schemaOptions);
Run Code Online (Sandbox Code Playgroud)
var ItemSchema = new Schema({
name : { type: String }
});
ItemSchema.set('timestamps', true); // this will add createdAt and updatedAt timestamps
Run Code Online (Sandbox Code Playgroud)
文档:https : //mongoosejs.com/docs/guide.html#timestamps
归档时间: |
|
查看次数: |
80978 次 |
最近记录: |