Подтвердить что ты не робот

Обновление субдокумента в mongodb?

Как настроить таргетинг на поддокумент в массиве authors, как показано ниже, чтобы его обновить?

collection.update({'_id': "4f44af6a024342300e000001"}, {$set: { 'authors.?' }} )

Документ:

{
    _id:     "4f44af6a024342300e000001",
    title:   "A book", 
    created: "2012-02-22T14:12:51.305Z"
    authors: [{"_id":"4f44af6a024342300e000002"}] 
}
4b9b3361

Ответ 1

Задав фактическое положение встроенного документа следующим образом:

// update _id field of first author    
collection.update({'_id': "4f44af6a024342300e000001"}, 
                  {$set: { 'authors.0._id': "1" }} )

Или через оператор позиционирования:

// update _id field of first matched by _id author    
collection.update({'_id': "4f44af6a024342300e000001",
                    //you should specify query for embedded document
                    'authors._id' : "4f44af6a024342300e000002" }, 
     // you can update only one nested document matched by query                   
                    {$set: { 'authors.$._id': "1" }} )