En este, aprenderemos cómo verificar si un documento dentro de una colección determinada contiene un cierto campo mediante el uso del operador $ Exists. Si eso suena interesante, saltemos.
Sintaxis del operador
Comencemos con los conceptos básicos y discutamos la sintaxis del operador $ Existes. El operador adquiere una sintaxis relativamente simple como se muestra en el siguiente fragmento de código:
campo: $ existe:
Luego, el operador coincide con los documentos que contienen el campo especificado, incluyendo donde el valor de dicho campo es nulo. Sin embargo, si el valor booleano es falso, el operador devuelve todos los documentos que no contienen dicho campo.
Si proviene de las bases de datos SQL, este operador no es similar a la consulta existe en el idioma SQL.
Ejemplo práctico
Suficiente con la teoría. Veamos una colección práctica y aprendamos cómo usar este operador para obtener los documentos que contienen o no contienen un campo dado.
Supongamos que tenemos una colección con los siguientes documentos:
db.CreateCollection ("Empleados")
Luego podemos agregar una muestra de datos de la siguiente manera:
db.empleados.insertmany ([
"_id": 1,
"First_Name": "Raymond",
"Last_Name": "Zanib",
"Estado: Activo",
"Salario": 100000
,
"_id": 2,
"Full_name": "Flor de Alexandros",
"Salario": 110000,
"Estado: Activo"
,
"_id": 3,
"Full_name": "Umer McCulloch",
"Salario": 109000,
"Idiomas": "EN"
])
En el ejemplo dado, tenemos tres documentos con diferentes campos y valores. Descubra cómo pueden ayudarnos a comprender el operador de $ existes.
Buscar los documentos con un campo dado
Podemos usar el operador $ Exists para obtener todos los documentos que contienen el campo, "Full_name". Una solicitud de ejemplo es como se muestra en lo siguiente:
db.empleados.find ("full_name": $ existe: true)
Dado que establecemos el $ existe en verdadero, la consulta solo debe devolver los documentos que contienen el campo definido.
Una salida de ejemplo es como se muestra:
[
_id: 2,
Full_name: 'Alexandros Flower',
Salario: 110000,
Estado: Activo'
,
_id: 3,
Full_name: 'Umer McCulloch',
Salario: 109000,
Idiomas: 'EN'
]
Como podemos ver, ambos documentos devueltos contienen el campo "Full_name".
Obtenga los documentos que no incluyen un campo específico
También podemos hacer lo contrario. En la siguiente consulta, usamos el operador $ exists, pero en su lugar, establecemos el valor en falso, lo que permite que el documento devuelva los documentos que no incluyen el campo establecido.
db.empleados.find ("full_name": $ existe: falso)
En este caso, solo hay un documento que coincide con la condición establecida.
[
_id: 1,
First_Name: 'Raymond',
Last_Name: 'Zanib',
Estado: Activo',
Salario: 100000
]
Conclusión
ahí tienes. La funcionalidad del operador $ se desglosa para su comprensión. Estén atentos para más tutoriales.