Du träffar direkt en av de nuvarande begränsningarna för MongoDB. Problemet är att motorn inte stöder flera positionsoperatorer. Se denna Multipel användning av positionsoperatorn `$` för att uppdatera kapslade arrayer
Det finns en öppen biljett för detta:https://jira.mongodb.org/browse/SERVER-831 (nämns också där)
Du kan också läsa den här om hur du ändrar din datamodell:Uppdatering av kapslade arrayer i mongodb
Om det är möjligt för dig kan du göra:
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>}})
Men du kan inte göra:
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.$.count":<number>}})