имеется структура БД:
todolists[
{
name: "Books",
id: ObjectID(заданный Mongo),
needs:[
{
task: "Harry Potter1",
isCompleted: false
},
{
task: "Harry Potter2",
isCompleted: true
}
]
},
{
name: "Places",
id: ObjectID(заданный Mongo),
needs:[
{
task: "Boodapesht",
isCompleted: false
},
{
task: "Varshava",
isCompleted: true
}
]
}
И необходимо изменить у task-a с именем "Varshava", в todolist-e с именем "Places" значение поля isCompleted на false.
Как до него так глубоко достучаться?
Следующим кодом добавлял необходимые task объекты в todolists.
(Может, как-нибудь поможет)
db.get().collection('todolists').findOneAndUpdate({_id: ObjectID(activeID)},
{ $push: {
needs: {
task: todo.task,
isCompleted: todo.isCompleted
}
}
}, {new: true}
...
Помогите, пожалуйста.
Можно так:
db.getCollection('/*имя коллекции */').update({_id: ObjectId("/* искомый id */"),
"needs" :{$elemMatch:{"task": "Varshava"}}},
{$set:{"needs.$.isCompleted":true}})
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости