Search code examples
node.jsmongoosemongoose-schema

mongoose update only selected field


I have one model

const ModelSchema = new Schema({
  assetObj: {
    title: {
      type: String,
      default: "untitled"
    },
    description: {
      type: String,
      default: "unavailable"
    },
    pageNo: {
      type: Number
    }
  },

....
});

I want to update title only in this model. So I make code in here.

let updateQuery = {};
updateQuery.assetObj = {
  title: 'New Title'
};
await Model.update({ _id: req.params.id }, { $set: updateQuery });

But result is removed description and pageNo in model.

How can I update only title in mongoose model?


Solution

  • I found answer. I need to change field name to "some.some". So I changed like at.

    let updateQuery = { "assetObj.title": 'New Title"};
    await Model.update({ _id: req.params.id }, { $set: updateQuery });