Mongoose : save nested object on instance
Say you have the following schema in mongoose :
const schema = new mongoose.Schema({
name: String,
price : Number,
features : Object
});
If you have created an instance from model and you try to update it, be aware of this :
const product = await Product.findOne({ name : "Fidget Spinner" });
product.features.coolColor = true;
await product.save(); // changes on features object wont be saved !
// you have to tell mongoose to save the changes :
product.markModified('features');
// and then save :
await product.save(); // changes on features object are saved :-)
This is because mongoose can't detect changes on an mixed type attribute.