Vous touchez directement l'une des limitations actuelles de MongoDB.Le problème est que le moteur ne supporte pas plusieurs opérateurs positionnels.Voir cet Utilisation multiple de l'opérateur positionnel `$` pour mettre à jour les tableaux imbriqués
Il existe un ticket ouvert pour cela :https://jira.mongodb.org/browse/SERVER-831 (également mentionné ici)
Vous pouvez également lire celui-ci sur la façon de modifier votre modèle de données :Mise à jour des tableaux imbriqués dans mongodb
Si c'est faisable pour vous, vous pouvez faire :
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.0.language.$.count":<number>}})
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.0.count":<number>}})
Mais vous ne pouvez pas faire :
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.$.count":<number>}})