Píšeš to v robomongu? Vypadá to tak! Pokud ano, nebude to fungovat. Přečtěte si moji poznámku o aktualizaci vnořeného pole pomocí MongoDB, kde říkám, že to nefunguje ve „starším shellu“ nebo v čemkoli na něm založeném (což robomongo je sestavení založené na shellu), protože jsou v současné době implementovány pomocné metody shellu:
POZNÁMKA Poněkud ironicky, protože je to uvedeno v argumentu "options" pro
.update()
a podobně jako u metod je syntaxe obecně kompatibilní se všemi nejnovějšími verzemi ovladačů.To však neplatí pro
mongo
shell, protože způsob, jakým je tam metoda implementována ( "ironicky pro zpětnou kompatibilitu"),arrayFilters
argument není rozpoznán a odstraněn interní metodou, která analyzuje možnosti, aby byla zajištěna "zpětná kompatibilita" s předchozími verzemi serveru MongoDB a "starší".update()
Syntaxe volání API.Pokud tedy chcete použít příkaz v
mongo
shell nebo jiné "shell based" produkty (zejména Robo 3T) potřebujete nejnovější verzi buď z vývojové větve nebo z produkčního vydání od 3.6 nebo vyšší.
Pokud si tedy chcete "hrát s" kandidátem na vydání, použijte buď přibalené mongo
shell s touto verzí nebo jednoduše spusťte svůj kód pomocí libovolného standardního ovladače.