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

Filtry pole Mongodb 3.6.0-rc3 nefungují?

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.



  1. MongoDB .NET negeneruje _id na upsert

  2. Dotaz $pull vnořeného pole pomocí ovladače C# MongoDB

  3. Jaký je nejlepší způsob, jak zjistit, která ID v kolekci neexistují, když je uveden seznam ID?

  4. Jak vytvořím výpis MongoDB své databáze?