猫鼬中间件发布-`update`不起作用

时间:2019-01-18 10:19:33

标签: mongoose

我正在使用猫鼬4.11.3。我正在尝试使用update后中间件。没用我尝试了save,它工作正常。不知道怎么了。

const mongoose = require('mongoose')
const Schema = mongoose.Schema

const ProfileSchema = Schema({
  // schema defined here
})

// working fine
ProfileSchema.post('save', function () {
    console.log('save called') 
})

// not working
ProfileSchema.post('update', function (err, doc, next) {
    console.log('update called') 
})

我正在呼叫findOneAndUpdate,数据正在更新,但未调用更新中间件。甚至pre都不起作用。

谢谢。

2 个答案:

答案 0 :(得分:0)

这对我有用,但不确定为什么'update'无效。

ProfileSchema.post('findOneAndUpdate', function () {
    console.log('pre - update')
})

答案 1 :(得分:0)

如果使用

,则不会调用“更新”钩子
Profile.updateOne();
Profile.findOneAndUpdate();

以此类推。

findOneAndUpdate”之所以有效,是因为您正在使用

Profile.findOneAndUpdate();

应该有意义。