2015-05-26 2 views
0

Как обновить активным Поле студента 1 до true в следующей коллекции монго. (Учитывая, что мы знаем hostel_name, room_no, student_id обновить)Обновление элемента массива 2-го уровня в MongoDB

{ 
    "hostel_name": "ABC", 
    "rooms": [ 
    { 
     "room_no": 1, 
     "students": [ 
     { 
      "student_id": 1, 
      "active": false 
     }, 
     { 
      "student_id": 2, 
      "active": true 
     } 
     ] 
    } 
    ] 
} 
+1

возможно дубликат [MongoDB обновления глубоко вложенный поддокумента] (http://stackoverflow.com/questions/ 18173482/MongoDB-обновление-глубоко вложенный-поддокумент) – Yogesh

ответ

-1

ОТВЕТ:

db.collectionname.update({"rooms.students.student_id" : 1},{"$set" : {"rooms.$.students.0.active" : true}}) 

{ 
    "_id" : ObjectId("5564fb68c8fc4ec0f15c6dd4"), 
    "hostel_name" : "ABC", 
    "rooms" : [ 
     { 
      "room_no" : 1, 
      "students" : [ 
       { 
        "student_id" : 1, 
        "active" : true 
       }, 
       { 
        "student_id" : 2, 
        "active" : true 
       } 
      ] 
     } 
    ] 
} 
Смежные вопросы