Vous devez utiliser cette requête (apparemment équivalente) :
db.mycollection.update({"sessions.0.issues": {$elemMatch: {id: <yourValue>}}}, {$set: {"sessions.0.issues.$.text": "newText"}})
Notez que votre expression de mise à jour était correcte.
Plus d'informations sur $elemMatch
.
Au fait, la référence MongoDB explicite que l'opérateur $ ne fonctionne pas "avec des requêtes qui traversent des tableaux imbriqués".
Important :$elemMatch
ne fonctionne qu'avec la version 4 ou plus.