MongoDB как update-ить вложенные объекты?

238
02 июня 2017, 14:40

имеется структура БД:

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}
...

Помогите, пожалуйста.

Answer 1

Можно так:

db.getCollection('/*имя коллекции */').update({_id: ObjectId("/* искомый id */"),   
 "needs" :{$elemMatch:{"task": "Varshava"}}},   
 {$set:{"needs.$.isCompleted":true}})
READ ALSO
Принудительное обновление страницы

Принудительное обновление страницы

У меня есть код на сайте, который меняет значение переменной в зависимости от того на какой див нажали (я не буду загромождать вопросом не нужным...

263
Есть ли решение которое убирает все чекеты на странице в type=“radio”

Есть ли решение которое убирает все чекеты на странице в type=“radio”

Есть ли простое решение, которое убрало бы все отметки radio (приводил к первоначальному виду) при условии, что есть несколько блоков с разными...

216
Не срабатывает setAttribute с svg

Не срабатывает setAttribute с svg

Добрый день суть в названии вопросаЕсть страничка на которую в div добавляется svg изображение через тег < object >

213
Как реализовать поиск в select по option без bootstrap

Как реализовать поиск в select по option без bootstrap

Как реализовать поиск в select по option без bootstrap select?

265