我有一个服务(我还没有附加任何钩子)与以下猫鼬模式:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const restaurantSchema = new Schema({
text: { type: String, required: true }
}, { timestamps: true });
const restaurantModel = mongoose.model('restaurant', restaurantSchema);
module.exports = restaurantModel;
问题是:每当我发送一个PUT请求时,createdAt
和updatedAt
都从我的对象中消失。
timestamps: true
不应该让猫鼬保持时间戳并更新updatedAt
的值吗?
正如Daff所说,这正是PUT的预期行为。阅读repo,我发现导致这种行为的是overwrite
选项。默认设置为true,导致更新完全替换当前对象,不留下时间戳。
我真的应该使用PATCH只更新某些字段并保留时间戳。