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
mongoskal, eftersom metoden är implementerad där ("ironiskt nog för bakåtkompatibilitet")arrayFiltersargumentet 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
mongoskal 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.