sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Los filtros de matriz Mongodb 3.6.0-rc3 no funcionan?

¿Estás escribiendo esto en robomongo? ¡Parece que es así! Si es así, no funcionará. Lea mi nota sobre la actualización de una matriz anidada con MongoDB donde digo que esto no funciona en un "shell más antiguo" ni nada basado en él (que robomongo es una compilación basada en shell) debido a la forma en que se implementan actualmente los métodos auxiliares de shell:

NOTA Irónicamente, ya que esto se especifica en el argumento "opciones" para .update() y métodos similares, la sintaxis es generalmente compatible con todas las versiones recientes del controlador.

Sin embargo, esto no es cierto para el mongo shell, ya que la forma en que se implementa el método allí ("irónicamente para compatibilidad con versiones anteriores") los arrayFilters El argumento no es reconocido y eliminado por un método interno que analiza las opciones para ofrecer "compatibilidad con versiones anteriores" con versiones anteriores del servidor MongoDB y un .update() "heredado". Sintaxis de llamada de API.

Entonces, si desea usar el comando en mongo shell u otros productos "basados ​​en shell" (especialmente Robo 3T), necesita una versión más reciente de la rama de desarrollo o la versión de producción a partir de 3.6 o superior.

Entonces, si quiere "jugar con" el candidato de lanzamiento, use el paquete mongo shell con esa versión o simplemente ejecute su código a través de cualquier controlador estándar.