Cómo usar $ All Operator en MongoDB

Cómo usar $ All Operator en MongoDB
MongoDB es una base de datos NoSQL que proporciona un amplio soporte de clases de operadores para ayudar a recuperar datos. El $ todos El operador cae en la categoría de una clase de operador de matriz. Como el nombre de $ todos (todos los operadores en MongoDB) indica que se utiliza para obtener el documento de una colección de bases de datos si coincide con todos los valores en un campo de matriz. Además, el $ todos El operador también proporciona soporte para que coincida con matrices anidadas si están presentes en cualquier campo.

En este artículo, se proporciona una breve información sobre el uso de $ todos los operadores en el contexto en MongoDB.

Cómo funciona $ todo operador en MongoDB

Como se discutió anteriormente, con la ayuda de $ todos los operadores; Se pueden obtener documentos basados ​​en campos de matriz.

Para obtener mejores entendimientos, echemos un vistazo a la sintaxis de $ All Operator:

"campo": $ all: ["valor1", "valor2" ...]

Este operador busca los valores especificados y cualquier documento que tenga un campo con valores exactos, se recupera. Sin embargo, se nota que $ todos funcionará solo si todos los valores coinciden con los valores de un campo de matriz en un documento. El mecanismo de trabajo de $ todos se relaciona con psy (operador lógico en MongoDB); Ambos operadores buscan coincidencias exactas. Pero psy el operador se puede usar con varios tipos de datos mientras $ todos es solo específico para los campos de tipo de datos de matriz.

Cómo funciona $ todo operador en MongoDB

En esta guía, se utilizarán las siguientes instancias de MongoDB:

  • Base de datos de MongoDB: La base de datos MongoDB utilizada en esta guía se llama "Linuxhint"
  • Recopilación: Hemos asociado "proyectos"Colección con"Linuxhint"Base de datos,

Los siguientes documentos residen en "proyectos" recopilación:

> DB.proyectos.encontrar().bonito()

Ejemplo 1: Uso básico de $ All Operator

Este ejemplo demuestra el uso fundamental de $ todos operadores; Por ejemplo, el comando mencionado a continuación buscará una coincidencia exacta de los valores de matriz en "gerentes" campo; Solo se muestran esos documentos que tienen los nombres del gerente "Miguel" y "Sam":

> DB.proyectos.Find (Managers: $ all: ["Mike", "Sam"]).bonito()

Ejemplo 2: Uso de $ todo operador con matrices anidadas

Si el documento contiene matrices anidadas como en nuestro caso "hardwareEl proyecto contiene una variedad anidada de gerentes, podemos obtener el documento especificando la matriz de nidos en $ todo operador. El comando mencionado a continuación obtendrá el documento que tenga gerentes "Alen","Sam" y "Elón":

> DB.proyectos.Find (Managers: $ all: [["Alen", "Sam"], "Elon"]).bonito()

Se nota que si desea usar solo una porción anidada de la matriz; También puede hacerlo, y el siguiente comando lo ayudará a este respecto:

> DB.proyectos.Find (Managers: $ all: [["Alen", "Sam"]]]).bonito()

Ejemplo 3: Uso de $ All Operator para que coincida con un valor

Además de tratar con matrices, el uso de $ todos los operadores se puede extender para que coincidan con los valores en el documento. En nuestro caso, el comando mencionado a continuación obtendrá los documentos que tienen "costo"El valor es igual a"5000":

> DB.proyectos.find (costo: $ all: [5000]).bonito()

O se puede decir que el comando escrito a continuación también le proporcionará el mismo resultado:

> DB.proyectos.encontrar (costo: 5000).bonito()
> DB.mi colección.encontrar().bonito()

Conclusión

MongoDB proporciona una extensa lista de operadores que se utilizan para recuperar los documentos requeridos de la recopilación de cualquier base de datos de Mongo. En este artículo, un operador asociado a la matriz llamado $ All se discute brevemente en el contexto de MongoDB. Este operador se puede usar para que coincida con los valores de la matriz en un campo y obtenga ese documento relevante. Además de los valores de matriz, $ todos también proporciona soporte para obtener el documento haciendo coincidir cualquier valor (que no sea una matriz).