Определите, является ли документ новым или существует в mongoose Post middleware "save"?
Из документации Mongoose JS:
schema.post('save', function (doc) {
console.log('%s has been saved', doc._id);
})
Есть ли способ определить, является ли это первоначальным сохранением или сохранением существующего документа (обновления)?
Ответы
Ответ 1
@aheckmann ответить в github
schema.pre('save', function (next) {
this.wasNew = this.isNew;
next();
});
schema.post('save', function () {
if (this.wasNew) {
// ...
}
});
isNew
- это ключ, используемый внутренним isNew
мангуста. Сохранение этого значения в документе было wasNew
в wasNew
предварительного сохранения, позволяя крюку сохранения сообщения узнать, был ли это существующий документ или недавно созданный. Кроме того, wasNew
не передается в документ, если вы специально не добавили его в схему.
Ответ 2
Изменение: см. Документ # isNew для получения информации о документе # isNew
Ответ 3
schema.post('save')
Больше не распознает события обновления. Таким образом, можно просто сделать следующее:
schema.post('save', function () {
console.log('New object has been created.');
});