FeathersJS Mongoose:PUT使“createdAt”和“updatedAt”消失

时间:2016-09-19 20:57:22

标签: mongoose-schema feathersjs

我有一个服务(我没有附加任何钩子)与下面的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请求时,createdAtupdatedAt都会从我的对象中消失。

不应timestamps: true让mongoose保留时间戳并更新updatedAt的值吗?

1 个答案:

答案 0 :(得分:1)

作为Daff said,这只是PUT的预期行为。阅读回购,我发现造成这种行为的原因是overwrite选项。它设置为true by default,导致更新完全替换当前对象而不留下时间戳。

我应该使用PATCH来仅更新某些字段并保留时间戳。