Lo stai scrivendo su robomongo? Sembra! Se è così non funzionerà. Leggi la mia nota sull'aggiornamento di un array nidificato con MongoDB in cui dico che questo non funziona in una "shell precedente" o qualsiasi altra cosa basata su di essa (che robomongo è una build basata su shell) a causa del modo in cui sono attualmente implementati i metodi di supporto della shell:
NOTA Un po' ironicamente, dal momento che questo è specificato nell'argomento "opzioni" per .update()
e come i metodi, la sintassi è generalmente compatibile con tutte le versioni dei driver di rilascio recenti.
Tuttavia questo non è vero per il mongo
shell, dal momento che il metodo è implementato lì ("ironicamente per compatibilità con le versioni precedenti") gli arrayFilters
argomento non viene riconosciuto e rimosso da un metodo interno che analizza le opzioni al fine di fornire "compatibilità con le versioni precedenti" con le versioni precedenti del server MongoDB e un .update()
"legacy" Sintassi delle chiamate API.
Quindi, se vuoi usare il comando nel mongo
shell o altri prodotti "shell based" (in particolare Robo 3T) è necessaria una versione più recente dal ramo di sviluppo o dalla versione di produzione a partire dalla 3.6 o successiva.
Quindi, se vuoi "giocare con" il candidato al rilascio, usa il pacchetto mongo
shell con quella versione o semplicemente esegui il tuo codice tramite qualsiasi driver standard.