sql >> Database >  >> NoSQL >> MongoDB

Geneste arrays in mongoDB bijwerken via mongo-shell

U raakt direct een van de huidige beperkingen van MongoDB. Het probleem is dat de engine verschillende positionele operators niet ondersteunt. Zie deze Meervoudig gebruik van de positionele `$`-operator om geneste arrays bij te werken

Hiervoor is een open ticket:https://jira.mongodb.org/browse/SERVER-831 (ook daar genoemd)

U kunt deze ook lezen over hoe u uw gegevensmodel kunt wijzigen:geneste arrays bijwerken in mongodb

Als het voor u haalbaar is, kunt u het volgende doen:

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

Maar je kunt niet doen:

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


  1. mongodb hoe de standaardpoort te wijzigen

  2. Stuur:de toegang is geweigerd om het eigendom op te lossen omdat het geen eigen eigendom is van de ouder

  3. mangoest schema maken

  4. Gegevens selecteren waarbij het bereik tussen twee verschillende velden een bepaald getal bevat