我有一个服务(我没有附加任何钩子)与下面的mongoose架构:
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
让mongoose保留时间戳并更新updatedAt
的值吗?
答案 0 :(得分:1)
作为Daff said,这只是PUT的预期行为。阅读回购,我发现造成这种行为的原因是overwrite
选项。它设置为true by default,导致更新完全替换当前对象而不留下时间戳。
我应该使用PATCH来仅更新某些字段并保留时间戳。