sql >> Databáze >  >> NoSQL >> MongoDB

Aktualizace vnořených polí v mongoDB přes mongo shell

Přímo narážíte na jedno ze současných omezení MongoDB. Problém je v tom, že engine nepodporuje několik pozičních operátorů. Viz toto Vícenásobné použití pozičního operátoru `$` k aktualizaci vnořených polí

K tomu je otevřená vstupenka:https://jira.mongodb.org/browse/SERVER-831 (tam je uvedena také)

Můžete si také přečíst tento článek o tom, jak změnit svůj datový model:Aktualizace vnořených polí v mongodb

Pokud je to pro vás proveditelné, můžete:

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

Ale nemůžete:

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


  1. Souborový systém pouze pro čtení při pokusu o mkdir /data/db na Macu

  2. Node.js – relace nepřetrvává prostřednictvím res.redirect()

  3. Jak na to:Použijte rozhraní Apache HBase REST, část 3

  4. Jarní stránka dat mongo