sql >> Base de Datos >  >> NoSQL >> MongoDB

Actualización de matrices anidadas en mongoDB a través de mongo shell

Está golpeando directamente una de las limitaciones actuales de MongoDB. El problema es que el motor no admite varios operadores posicionales. Vea esto Uso múltiple del operador posicional `$` para actualizar matrices anidadas

Hay un ticket abierto para esto:https://jira.mongodb.org/browse/SERVER-831 (también mencionado allí)

También puede leer este sobre cómo cambiar su modelo de datos:Actualización de matrices anidadas en mongodb

Si es factible para ti, puedes hacer:

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>}})

Pero no puedes hacer:

db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.$.count":<number>}})