Du kan kun bruge $
positionsoperator til enkelt-niveau arrays. I dit tilfælde har du et indlejret array (heros
er et array, og inden for det har hver helt en spells
array).
Hvis du kender indeksene for arrays, kan du bruge eksplicitte indekser, når du laver en opdatering, som:
> db.test.update({"heros.nickname":"test", "heros.spells.spell_id":1}, {$set:{"heros.0.spells.1.level":3}});