MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour l'objet intégré dans le tableau à l'intérieur du tableau dans MongoDB

Vous ne pouvez utiliser que le $ opérateur positionnel pour les tableaux à un seul niveau. Dans votre cas, vous avez un tableau imbriqué (heros est un tableau, et à l'intérieur de celui-ci chaque héros a un spells tableau).

Si vous connaissez les index des tableaux, vous pouvez utiliser des index explicites lors d'une mise à jour, comme :

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