每当数据库数据更新时,如何更改updated_at
的值
将其视为我的猫鼬模式
const mongoose = require('mongoose')
const locationDataSchema = new mongoose.Schema({
locationName: String,
location: [{
lat: Number,
lng: Number
}],
news: [ {
author: String, //or number
title: String,
description: String,
url: String,
urlToImage: String
}],
updated_at: {
type: Date,
default: Date.now
}
})
从我对猫鼬文档的模糊阅读中,我做了类似的事情
locationDataSchema.post('save', (next) => {
console.log("here")
this.locationName = this.locationName.toLowerCase();
this.updated_at = Date.now()
})
但是,每当我在猫鼬模式中创建/更新某些内容时,都不会调用此方法
问题:有人可以帮助我弄清楚如何改变
updated_at = Date.now()
每当用户更新数据库中的数据时(将位置名称更改为小写)
答案 0 :(得分:2)
当前版本的Mongoose(v4.x)具有时间戳,作为模式的内置选项:
var mySchema = new mongoose.Schema( {name: String}, {timestamps: true} );
此选项添加了带有日期时间戳的createdAt和updatedAt属性,这些属性可以为您完成所有工作。 有关更多信息,请查看
https://mongoosejs.com/docs/guide.html#timestamps