Você está digitando isso no robomongo? Parece que sim! Se for isso não vai funcionar. Leia minha nota sobre Atualizando uma matriz aninhada com o MongoDB, onde digo que isso não funciona em um "shell mais antigo" ou qualquer coisa baseada nele (que robomongo é uma compilação baseada em shell) devido à maneira como os métodos auxiliares do shell são implementados atualmente:
OBSERVAÇÃO Um tanto ironicamente, já que isso é especificado no argumento "options" para.update()
e como métodos, a sintaxe é geralmente compatível com todas as versões de driver de lançamento recentes.
No entanto, isso não é verdade para omongo
shell, já que a forma como o método é implementado lá ("ironicamente para compatibilidade com versões anteriores") oarrayFilters
argumento não é reconhecido e removido por um método interno que analisa as opções para fornecer "compatibilidade com versões anteriores" com versões anteriores do servidor MongoDB e um.update()
"legado" Sintaxe de chamada da API.
Então, se você quiser usar o comando nomongo
shell ou outros produtos "baseados em shell" (principalmente Robo 3T), você precisa de uma versão mais recente da ramificação de desenvolvimento ou da versão de produção a partir de 3.6 ou superior.
Portanto, se você quiser "brincar com" o candidato a lançamento, use o pacote
mongo
shell com essa versão ou simplesmente execute seu código por meio de qualquer driver padrão.