'Mongoose post save hook, modifiedPaths() is always empty

Our aim is to have a post hook in place where we can track changed fields.

Model file:

const VariationSchema = new Schema({
  _id: {
    type: String,
  },
  title: {
    type: String,
  },
  desc: {
    type: String,
  },
});


VariationSchema.post('save', async function (doc) {
  console.log(doc.modifiedPaths());
});

const VariationModel = mongoose.model('variation', VariationSchema);

module.exports = {
  VariationModel,
  VariationSchema,
};

Service file:

const variationDocument = await VariationModel.findById(variationId).select({});
variationDocument.desc = (Math.random() + 1).toString(36).substring(7);
await variationDocument.save();
return variationDocument.toJSON();

No matter what we do, doc.modifiedPaths() is always empty. Please help



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source