Как обновить конкретные поля в базе данных Mongodb (Mongoose)? findOneAndUpdate()?
В приложении использую Mongoose. БД находится в облаке MongoDB Atlas. В коллекции есть такой документ:
{
"_id": "5fd76620e07cba4a7b34b999",
"data": [
{
"title": "1",
"url": "/one",
"show": true
},
{
"title": "2",
"url": "/two",
"show": true
},
{
"title": "3",
"url": "/three",
"show": false
}
]
}
Вопрос. Как можно перезаписать допустим значение ключа"title": "2" на "title": "290" и "show" изменить на false а поле "url": "/two" вообще не трогать?
Ответы (1 шт):
Автор решения: Александр Ищенко
→ Ссылка
Вопрос решен. Ниже код который решил мою задачу.
const data = await Test.findOneAndUpdate(
{
_id: '5fd76620e07cba4a7b34b999',
data: { $elemMatch: { url: '/two' } }
},
{
$set: { ['data.$.title']: 'someValue' }
},
{
new: true
}
);