За съжаление, в момента е възможно да се използва само една позиция "$" на актуализация. Това ограничава актуализацията до единичен вграден масив, подобно на примера в документацията:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator(От публикацията ви изглежда, че вече сте намерих това, но включих връзката в полза на всички други потребители, които четат тази публикация.)
За да направите актуализацията, ще трябва да знаете позицията на две от следните три:позицията на групата в масива "bands", позицията на албума в масива албуми или позицията на песента в масива "tracks".
Има заявка за функция за тази функционалност и тя е насрочена за версия 2.3.0 (въпреки че това подлежи на промяна).
https://jira.mongodb.org/browse/SERVER-831 „Позиционално съвпадение на оператора Вложени масиви"
За момента ще трябва да знаете позицията на поддокументите в два от трите масива:
db.music.update({genre : "Grunge", "bands.name" : "Nirvana"}, {$set:{"bands.$.albums.0.tracks.0.name":"Smells Like Teen Spirit!"}})
db.music.update({genre : "Grunge", "bands.0.albums.name" : "Nevermind"}, {$set:{"bands.0.albums.$.tracks.0.name":"Smells Like Teen Spirit!"}})
или
db.music.update({genre : "Grunge", "bands.0.albums.0.tracks.order" : 1}, {$set:{"bands.0.albums.0.tracks.$.name":"Smells Like Teen Spirit!"}})