Sie stoßen direkt auf eine der aktuellen Einschränkungen von MongoDB. Das Problem besteht darin, dass die Engine mehrere Positionsoperatoren nicht unterstützt. Siehe diese Mehrfachverwendung des Positionsoperators „$“ zum Aktualisieren verschachtelter Arrays
Dazu gibt es ein offenes Ticket:https://jira.mongodb.org/browse/SERVER-831 (dort auch erwähnt)
Sie können auch dieses lesen, wie Sie Ihr Datenmodell ändern können:Verschachtelte Arrays in Mongodb aktualisieren
Wenn es für Sie machbar ist, können Sie Folgendes tun:
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>}})
Aber Sie können nicht:
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.$.count":<number>}})