MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

I filtri array Mongodb 3.6.0-rc3 non funzionano?

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.