MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Aktualisieren Sie das eingebettete Objekt innerhalb des Arrays innerhalb des Arrays in MongoDB

Sie können nur den $ verwenden Positionsoperator für einstufige Arrays. In Ihrem Fall haben Sie ein verschachteltes Array (heros ist ein Array, und darin hat jeder Held einen spells Array).

Wenn Sie die Indizes der Arrays kennen, können Sie bei einer Aktualisierung explizite Indizes verwenden, wie zum Beispiel:

> db.test.update({"heros.nickname":"test", "heros.spells.spell_id":1}, {$set:{"heros.0.spells.1.level":3}});