Czy piszesz to w robomongo? To wygląda jak! Jeśli tak, to nie zadziała. Przeczytaj moją notatkę na temat aktualizacji zagnieżdżonej tablicy za pomocą MongoDB, gdzie mówię, że to nie działa w „starszej powłoce” ani w niczym na niej opartym (który robomongo jest kompilacją opartą na powłoce) ze względu na sposób, w jaki metody pomocnicze powłoki są obecnie implementowane:
UWAGA Trochę ironicznie, ponieważ jest to określone w argumencie „opcje” dla .update()
i podobnie jak metody, składnia jest ogólnie zgodna ze wszystkimi najnowszymi wersjami sterowników.
Jednak nie dotyczy to mongo
powłoki, ponieważ sposób, w jaki metoda jest tam zaimplementowana ( "jak na ironię dla wstecznej kompatybilności"), arrayFilters
argument nie jest rozpoznawany i usuwany przez wewnętrzną metodę, która analizuje opcje w celu zapewnienia „zgodności wstecznej” z wcześniejszymi wersjami serwera MongoDB i „starszego” .update()
Składnia wywołań API.
Więc jeśli chcesz użyć polecenia w mongo
shell lub inne produkty "oparte na powłoce" (zwłaszcza Robo 3T), potrzebujesz najnowszej wersji z gałęzi rozwojowej lub wydania produkcyjnego w wersji 3.6 lub nowszej.
Więc jeśli chcesz "pobawić się" kandydatem do wydania, użyj dołączonego mongo
powłoki z tą wersją lub po prostu uruchom swój kod za pomocą dowolnego standardowego sterownika.