Skriver du detta i robomongo? Det ser ut som det! Om så är fallet kommer det inte att fungera. Läs min anteckning om att uppdatera en kapslad array med MongoDB där jag säger att detta inte fungerar i ett "äldre skal" eller något baserat på det (vilket robomongo är en skalbaserad konstruktion) på grund av hur skalhjälpmetoderna för närvarande är implementerade:
OBS Något ironiskt, eftersom detta anges i "alternativ"-argumentet för
.update()
och liknande metoder är syntaxen i allmänhet kompatibel med alla senaste versioner av drivrutiner.Detta är dock inte sant för
mongo
skal, eftersom metoden är implementerad där ("ironiskt nog för bakåtkompatibilitet")arrayFilters
argumentet känns inte igen och tas bort av en intern metod som analyserar alternativen för att leverera "bakåtkompatibilitet" med tidigare MongoDB-serverversioner och en "legacy".update()
API-anropssyntax.Så om du vill använda kommandot i
mongo
skal eller andra "skalbaserade" produkter (särskilt Robo 3T) behöver du en senaste version från antingen utvecklingsgrenen eller produktionsversionen från och med 3.6 eller senare.
Så om du vill "leka med" släppkandidaten, använd antingen den medföljande mongo
skal med den versionen eller helt enkelt köra din kod genom en standarddrivrutin.