En MongoDB, la consulta de documentos es una parte esencial de la interacción con la base de datos. La consulta le permite recuperar datos específicos de una colección de documentos. Este capítulo cubrirá los operadores lógicos que se pueden utilizar para realizar consultas más complejas y específicas en MongoDB.
Operadores lógicos
Los operadores lógicos en MongoDB se utilizan para combinar o modificar condiciones en una consulta. Los operadores lógicos incluyen $and, $or, $not y $nor.
$y
El operador $and realiza una operación AND lógica en una matriz de dos o más expresiones (por ejemplo, { $and: [ {
$o
El operador $or realiza una operación OR lógica en una matriz de dos o más { $or: [ {
$no
El operador $not realiza una operación NOT lógica en la expresión y selecciona documentos que no coinciden con la expresión. El operador $not debe usarse con expresiones que usan operadores de consulta. Por ejemplo, la consulta { campo: { $not: { $gt: 1,99 } } } seleccionará todos los documentos donde el valor del campo no sea mayor que 1,99.
$ni
El operador $nor realiza una operación NOR lógica en una matriz de dos o más expresiones y selecciona documentos que no coinciden con ninguna de las expresiones. El operador $nor tiene evaluación de cortocircuito. Es decir, si la primera expresión evaluada es verdadera, MongoDB no evaluará las expresiones restantes.
Ejemplo de Consulta con Operadores Lógicos
Supongamos que tenemos la siguiente colección de documentos:
{ "_id": 1, "nombre": "John Doe", "edad": 22, "estado": "A" }, { "_id": 2, "nombre": "Jane Doe", "edad": 25, "estado": "B" }, { "_id": 3, "nombre": "Maria Johnson", "edad": 22, "estado": "A" }
Podemos usar el operador $and para encontrar todos los documentos donde la edad es 22 y el estado es "A". La consulta se vería así:
db.collection.find( { $y: [ { edad: 22 }, { estado: "A" } ] } )
Esto devolverá documentos donde ambas condiciones son verdaderas.
De manera similar, podemos usar el operador $or para buscar todos los documentos donde la edad es 22 o el estado es "B". La consulta se vería así:
db.collection.find( { $o: [ { edad: 22 }, { estado: "B" } ] } )
Esto devolverá documentos donde al menos una de las condiciones es verdadera.
En resumen, los operadores lógicos en MongoDB son herramientas poderosas que le permiten crear consultas complejas y específicas. Son esenciales para extraer información útil de una base de datos MongoDB.