запрос на обновление не работает в объекте MongoDB

#mongodb #mongodb-query

#mongodb #mongodb-запрос

Вопрос:

У меня документ формата ниже

 {
   "_id":"5f10481e74d83d4b726fdf33",
   "name":"1234",
   "settings":{
      "allowedUser":true,
      "theme":"lowergrade"
   }
}
 

Я хочу написать запрос на обновление settings.theme , поэтому я написал ниже запрос mongo

 db.test.update({
  _id: "5f10481e74d83d4b726fdf33"
},
{
  $set: {
    "settings": {
      "theme": "lowergrade123",
      
    }
  }
})
 

Обновление происходит правильно, но "allowedUser" : true, ключ и значение были удалены.

Это мой ожидаемый ответ

 {
   "_id":"5f10481e74d83d4b726fdf33",
   "name":"1234",
   "settings":{
      "allowedUser":true,
      "theme":"lowergrade123"
   }
}
 

Ответ №1:

 db.test.update({ _id: "5f10481e74d83d4b726fdf33" }, {
  $set: {
    "settings.theme":  "lowergrade123",
  }
})
 

Вам нужно использовать . для установки значения поля. Вы на самом деле заменяете settings .