我想将创建日期添加到mongoose返回的结果中。我知道mongodb记录的_id属性中嵌入了创建日期,但我不确定如何将它添加到结果集中,以便我可以在客户端应用程序中使用它。
有关如何动态地将该属性添加到结果集的任何想法吗?
答案 0 :(得分:2)
如果您愿意将_id
的时间戳用作创建日期
var fooSchema = new Schema({
name: String,
...
},
{
toObject: { virtuals: true },
toJSON: { virtuals: true }
}
)
fooSchema.virtual('created')
.get(function(){
return this._id.getTimestamp();
});
您可以访问字段created
以获取时间戳。
从{mongoose文档转换时,toObject
(doc)和toJson
(doc)选项用于保留我们的虚拟字段(已创建)。使用toJson
可能就足够了,取决于您的使用情况。
如果您不愿意使用_id
的时间戳(有许多参数在跨多个实例操作时不可取),您可以将它放在单独的字段中,如
var fooSchema = new Schema({
name: String,
created: {type: Date, default: Date.now},
});
这会将created
设置为首次保存对象的时间戳。
答案 1 :(得分:1)
猫鼬可以自动为您完成。根据猫鼬中的timestamp option,只需执行以下操作:
computed: {
bets() {
console.log('yep');
return _.orderBy(this.bets, 'created_at')
}
},
您还可以使用var nSchema=new Schema({
name:String,
...
timestamps: { createdAt: 'created_at' },
...
});
答案 2 :(得分:0)
我更喜欢ma08的第二种方式。添加一个创建的字段并使用默认值Date.now.This方法自动创建当前日期作为创建日期。
var nSchema=new Schema({
name:String,
...
created: {type:Date, default:Date.now},
...
});