sql >> Database teknologi >  >> NoSQL >> MongoDB

Opdatering af indlejrede arrays i mongoDB via mongo shell

Du rammer direkte en af ​​de nuværende begrænsninger af MongoDB. Problemet er, at motoren ikke understøtter flere positionsoperatorer. Se denne Multiple use of the positional `$` operator til at opdatere indlejrede arrays

Der er en åben billet til dette:https://jira.mongodb.org/browse/SERVER-831 (også nævnt der)

Du kan også læse denne om, hvordan du ændrer din datamodel:Opdatering af indlejrede arrays i mongodb

Hvis det er muligt for dig, kan du gøre:

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 ikke gøre:

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


  1. Er der en måde at automatisk opdage ny klynge node IP i Redis Cluster med salat

  2. Mongo Change Streams, der kører flere gange (en slags):Node-app, der kører flere forekomster

  3. Synkroniser MongoDB via ssh

  4. Pivot rækker til kolonner i MongoDB