El operador MongoDB $ existe permite al usuario obtener los documentos de una colección independientemente de si un campo relevante está presente o no. El operador $ existe solo toma el parámetro booleano que puede ser verdadero o falso. El valor verdadero especificado al operador $ existe Devuelve el documento coincidente que incluye el campo especificado incluso donde el valor de campo es nulo. Por otro lado, los documentos que no incluyen el campo especificado se devuelven cuando el valor de $ existe se establece en falso.
¿Cómo trabaja el operador $ existe en MongoDB??
El operador $ exists se usa en el nombre de campo especificado. El nombre del campo se define en el método find (). Luego, el nombre del campo especificado se establece más a medida que la expresión del operador $ existe. Se proporciona la siguiente sintaxis para una mejor comprensión:
db.recopilación.find (field_name: $ exist: boolean_value).
Antes de comenzar el uso del operador $ Exists, se requiere establecer la colección MongoDB y recuperar el contenido de esa colección, que será utilizado por el operador $ Exists. Utilizamos la colección "Cliente" para el operador $ Exists e insertamos el siguiente documento dentro de esa colección utilizando el método InsertMany ().
db.Cliente.insertmany ([
"OrderName": "Storybooks",
"Cantidad": 3,
"Precio": 600,
"Fecha": "24-11-2022",
"Detalles": ["nombre": "Kyle", "edad": 21, "teléfono": 032367]
,
"OrderName": "Perfume",
"Cantidad": 1,
"Precio": 450,
"Fecha": "24-11-2022",
"Detalles": ["nombre": "Richard", "edad": 28, "teléfono": "8237818"]
,
"OrderName": "Mira",
"Cantidad": 1,
"Precio": 750,
"Detalles": ["nombre": "addy", "edad": 34, "teléfono": 419230],
,
"OrderName": "Bracelet",
"Cantidad": 2,
"Precio": 590,
"Fecha": "2-11-2022",
"Detalles": ["nombre": "Emily", "edad": 19, "teléfono": 2304949]
])
Cuando el documento se inserta correctamente en la colección, obtenemos la siguiente salida del shell MongoDB:
Ejemplo 1: Uso del operador MongoDB $ existe con valor verdadero
Cuando el operador $ existe de MongoDB se asigna con el valor booleano "verdadero", devuelve todos los documentos de la colección especificada que tiene ese nombre de campo. Allí, tenemos una consulta utilizando el operador $ existe donde primero especificamos el nombre del campo "OrderName". El campo "OrderName" se establece con la expresión $ existe: true donde el operador $ exits se establece con el valor "verdadero". El operador $ Salidas aquí identifica el documento que contiene el campo "OrderName" en la colección.
db.Cliente.find ("OrderName": $ existe: true).bonito();
El campo "OrderName" existe en todos los documentos de la colección "Cliente" que se devuelve después de ejecutar la consulta.
Ejemplo 2: Uso del operador MongoDB $ existe con un valor falso
Cuando el operador $ existe está asociado con el valor "falso", devuelve aquellos documentos que contienen el campo dado. Ahora, implementamos la consulta del operador $ exists con el valor falso. Primero especificamos el campo "Fecha". Luego, establecemos el operador $ Exists que es igual al valor "falso". El operador $ existe busca ese documento donde el campo "Fecha" no se incluye ya que el valor "falso" se establece en su contra.
db.Cliente.find ("date": $ existe: falso).bonito();
Cuando la consulta del operador $ existe se ejecuta en el shell, devuelve un documento con el campo de "fecha" de no existencia.
Ejemplo 3: Uso del operador MongoDB $ existe con el operador condicional
Este es un ejemplo del operador $ Exists que se emplea con el operador de comparación "GT". La consulta se proporciona en la que tenemos un nombre de campo de "precio" para ser identificado por el operador $ existe y esos valores de campo de "precio" solo se devuelven de acuerdo con la declaración de comparación. El campo "Precio" se establece con la doble expresión. La primera expresión es la "$ existe: Verdadero" para devolver el documento que está asociado con el campo "Precio". Luego, la segunda expresión es el "$ GT: 550" que indica aquellos documentos recuperados cuyo valor de precio es mayor que el valor "550".
db.Cliente.find (precio: $ existe: true, $ gt: 550).bonito()
Los documentos se obtienen como una salida que contiene el campo "Precio" y los valores de "precio" son mayores que "550".
Ejemplo 4: Uso del operador MongoDB $ existe para múltiples campos
Como usamos el operador $ existente para el campo único que se identificará, utilizamos el operador $ exists aquí para los múltiples campos que se recuperarán del documento. Dentro de la siguiente consulta, especificamos el campo "Cantidad" que se establece con el operador $ existente con el valor verdadero. El campo "Detalles" también se define que también se proporciona con el operador $ existente y el valor en su contra también es verdadero. Tenga en cuenta que establecemos el operador $ existen por separado para cada campo especificado.
db.Cliente.encontrar(
Cantidad: $ existe: verdadero,
Detalles: $ existe: verdadero
)
El operador $ existe devuelve esos documentos en la siguiente salida que contiene los campos de "Cantidad" y "Detalles".
Ejemplo 5: Uso del operador MongoDB $ existe para el campo de matriz
Aquí, determinamos si existe o no un campo en la matriz dada del documento. Observe la siguiente consulta. Definimos el campo de la matriz como "Detalles.edad "donde" detalles "es la matriz del documento y el elemento de campo es la" edad ". El operador $ Exists se implementa luego con el valor booleano "verdadero" que encuentra la existencia del campo "edad" de la matriz de "detalles" del documento.
db.Cliente.encontrar ("detalles.edad ": $ existe: verdadero)
La salida muestra los documentos que incluyen el campo de matriz de "edad".
Ejemplo 6: Uso del operador MongoDB $ existe con el operador de $ NIN
Usamos el método $ exists con el operador de comparación en el ejemplo anterior. También podemos usar este operador con otro operador al igual que el operador de $ nin. Primero, el $ existe recupera los documentos dependiendo del campo dado. Entonces, $ NIN genera los documentos que no incluyen los valores dados. Tengamos la siguiente consulta del operador $ Exists junto con el operador de $ NIN. Damos un campo de "fecha" donde el operador $ existe se utiliza con el valor "verdadero". Luego, el valor del campo "Fecha" se define con el operador de $ NIN. El operador $ existe verifica la existencia del campo "Fecha" y el operador $ NIN excluye el documento que se recupera del operador $ Exists cuyo valor es "24-11-2022".
db.Cliente.find (date: $ existe: true, $ nin: ["24-11-2022"])
El funcionamiento del $ existe y los operadores de $ NIN que recuperan el documento de la colección están en la siguiente imagen:
Conclusión
El operador $ Exists es muy útil cuando queremos encontrar la existencia de un documento en particular en nuestra colección. Incluso podemos incluir el documento específico o excluirlo que se mostrará en la colección MongoDB. Proporcionamos los casos de uso del operador $ existe para demostrar la funcionalidad de este operador en MongoDB. Examinamos la existencia de documentos integrados utilizando el operador $ exists. Además, utilizamos el operador $ Exists con la comparación y los operadores de $ nin. Cada uno de estos operadores tiene un trabajo diferente con el operador $ existes.