мангуст обновляет только выбранное поле

#node.js #mongoose #mongoose-schema

#node.js #мангуст #mongoose-схема

Вопрос:

У меня есть одна модель

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

....
});
 

Я хочу обновить заголовок только в этой модели.
Поэтому я создаю здесь код.

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

Но в результате удаляется описание и страница в модели.

Как я могу обновить только заголовок в модели mongoose?

Комментарии:

1. используйте что-то похожее на эту модель ожидания.update({ _id: req.params.id }, { $set: { assetObj.title : Новый заголовок’ }

2. @Shubham Tiwari Спасибо, Так вот как это? updateQuery = { «assetObj.title»: ‘Новый заголовок»}

3. это переопределит целые данные

4. @ShubhamTiwari Я решил свою проблему с помощью вашего метода. Спасибо.

Ответ №1:

Я нашел ответ. Мне нужно изменить имя поля на «some.some». Так что я изменился, как дома.

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