Cómo usar operadores $ In y $ nin en MongoDB

Cómo usar operadores $ In y $ nin en MongoDB
MongoDB admite varios operadores para ayudar a recuperar el documento de las bases de datos. Las clases de operadores compatibles con MongoDB incluyen comparación, lógica, operadores de elementos, etc. El $ en (pronunciado como "en") y $ nin (No en) Los operadores en MongoDB pertenecen a la clase de comparación de operadores de MongoDB. Estos operadores se dirigen específicamente a los valores de la matriz solo y pueden filtrar la colección sobre la base de los valores existentes o no existentes. Por ejemplo, $ El operador busca valores de matriz y muestra solo aquellos documentos que coinciden con la matriz, mientras que $ nin El operador ayuda a mostrar solo aquellos documentos que no contienen los valores (que se pasan al operador de $ NIN).

En este artículo, proporcionaremos una guía detallada para usar $ y $ nin Operadores en MongoDB:

Se recomienda completar los siguientes elementos de la lista de requisitos previos para proceder a la aplicación de estos operadores.

Requisitos previos

Esta sección contiene un conjunto de componentes de MongoDB que son necesarios para ser adoptados para seguir esta guía:

  • Base de datos de MongoDB
  • Una colección dentro de una base de datos
  • Documentos en una colección

En esta publicación, utilizaremos la siguiente base de datos y una colección para aplicar operadores de $ In y $ NIN:

Nombre de la base de datos: Linuxhint

Nombre de la colección: debian

También debe insertar algunos documentos en una colección.

Cómo usar operadores $ In y $ nin en MongoDB

Este artículo está dividido en dos partes; uno se refiere al operador $ en el operador y el otro demuestra el uso del operador de $ nin.

En primer lugar, verificaremos los documentos disponibles en nuestra colección (para que podamos realizar acciones en consecuencia).

Conéctese a su MongoDB emitiendo el siguiente comando en Ubuntu Terminal: se nota que este comando lo conectará automáticamente a cáscara de mongo también.

$ sudo mongo linuxhint

Después de eso, puede obtener la visualización de todos los documentos disponibles en su colección: por ejemplo, el siguiente comando ayudará a recuperar documentos disponibles en el "debian" recopilación:

> DB.debian.encontrar().bonito()

Cómo usar $ en operador en MongoDB

El $ El operador buscará la matriz y muestra el documento que coincide con el valor: la sintaxis de $ se escribe a continuación:

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

Debe especificar el nombre de campo y los valores que desea buscar:

Ejemplo 1: Uso de $ in para que coincida con un valor

El $ en el operador se puede usar para que coincida con un valor en un campo e imprimirá los documentos que coincidan con ese valor. Por ejemplo, el siguiente comando mostrará todos los documentos que tienen "numer"(Campo) es igual al valor"20": Como solo un documento contiene valor"20"; Por lo tanto, solo ese se imprime:

> DB.debian.find (num: $ in: [20]).bonito()

Ejemplo 2: Uso de $ IN para que coincida con un valor de matriz (s)

Además, también puede usar el operador $ en el operador para buscar valores de matriz en la base de datos MongoDB. En nuestro caso, el comando mencionado a continuación mostrará los documentos que tienen valores "Miguel" y "Jacobo" en "Autores " campo:

> DB.debian.find (autores: $ in: ["Mike", "Jack"]).bonito()


Ejemplo 3: Uso de $ In para coincidir con expresiones regulares

El $ en el operador también se puede usar para que coincida con los valores especificados por una expresión regular: el comando mencionado a continuación mostrará documentos que contienen un campo "Tipo"Y las cuerdas en el campo comienzan con"abundante" o "cd":

> DB.debian.find (type: $ in: [/^ab/,/^cd/]).bonito()

Cómo usar el operador $ nin en MongoDB

El operador de $ NIN en MongoDB actúa de manera opuesta a $ IN; como $ nin mostrará el documento que no contiene el valor especificado. La sintaxis es igual de $ in y se muestra a continuación:

"Archivado": $ nin: ["valor1", "valor2" ...]

Ejemplo 1: Uso de $ nin para que coincida con un valor

Como ya se mencionó, ese operador de $ NIN no muestra el documento que coincida con un valor. El siguiente comando mostrará los documentos que no contienen "20" en "numer" campo:

La siguiente salida muestra que los documentos impresos no contienen valor "20":

> DB.debian.Find (num: $ nin: [20]).bonito()

Ejemplo 2: Uso de $ nin para que coincida con un valor de matriz

El siguiente comando mostrará los documentos que no contienen "Miguel" y "John" en el "Autores" campo. Como ninguno de los documentos se queda atrás porque todos los documentos tienen "Miguel" o "John"Como autor, habrá una salida vacía:

> DB.debian.find (autores: $ nin: ["Mike", "John"]).bonito()

Ejemplo 3: Uso de $ nin para que coincida con una expresión regular

El operador de $ NIN también se usa para obtener los documentos en función de expresiones regulares; Por ejemplo, en el siguiente comando mencionado, "Tipo"Se selecciona el campo y $ NIN imprimirá esos documentos en los que"Tipo"El valor no comienza con"abundante" o "cd":

> DB.debian.find (type: $ nin: [/^ab/,/^cd/]).bonito()

Nota: El "bonito()El método "utilizado en este artículo es solo para obtener la salida en forma estructurada; solo puedes usar "encontrar()"Para obtener el mismo resultado pero de una manera no estructurada.

Conclusión

La gestión de datos adecuada es la principal preocupación de cualquier organización. Tienen que almacenar datos y se prefieren la recuperación rápida de los datos cuando sea necesario. Varios sistemas de gestión de bases de datos proporcionan dicha funcionalidad y MongoDB es uno de ellos. En esta publicación, hemos descrito el uso de dos operadores "$" y "$ nin"Esa ayuda para recuperar los valores de matriz en una base de datos MongoDB. Estos operadores ayudan a obtener los documentos requeridos basados ​​en valores coincidentes por estos operadores. El operador $ en el operador imprime el documento que contiene la coincidencia; mientras que $ nin imprime esos documentos que no coinciden con el valor.