Aplicar Múltiples Condiciones
En este paso, aprenderá a aplicar múltiples condiciones para filtrar documentos en una colección de MongoDB. Esto permite consultas más precisas al combinar varios criterios.
Primero, abra su terminal e inicie el Shell de MongoDB (mongosh). Este shell interactivo es donde ejecutará todos sus comandos de base de datos.
mongosh
Una vez dentro del shell mongosh, verá un prompt >. Cambiemos a una nueva base de datos llamada school_database y creemos una colección students con algunos datos de ejemplo.
use school_database
db.students.insertMany([
{ name: "Alice", age: 22, grade: "A", major: "Computer Science" },
{ name: "Bob", age: 20, grade: "B", major: "Mathematics" },
{ name: "Charlie", age: 25, grade: "A", major: "Physics" },
{ name: "David", age: 19, grade: "C", major: "Computer Science" }
]);
Este comando inserta cuatro documentos en la colección students. Ahora, busquemos estudiantes que cumplan múltiples condiciones. Usaremos el operador $and para encontrar estudiantes que tengan 20 años o más Y una calificación de "A".
db.students.find({
$and: [{ age: { $gte: 20 } }, { grade: "A" }]
});
Esta consulta utiliza $gte, que significa "mayor o igual que" (greater than or equal to), y $and para asegurar que ambas condiciones se cumplan. La salida mostrará a Alice y Charlie:
[
{
_id: ObjectId("..."),
name: 'Alice',
age: 22,
grade: 'A',
major: 'Computer Science'
},
{
_id: ObjectId("..."),
name: 'Charlie',
age: 25,
grade: 'A',
major: 'Physics'
}
]
A continuación, usaremos el operador $or para encontrar documentos que coincidan con al menos una de varias condiciones. Esta consulta busca estudiantes que estén cursando "Computer Science" O que tengan menos de 21 años.
db.students.find({
$or: [{ major: "Computer Science" }, { age: { $lt: 21 } }]
});
Esta consulta utiliza $lt, que significa "menor que" (less than). El resultado incluirá a Alice y David (estudiantes de Computer Science) y a Bob y David (menores de 21 años). Dado que David cumple ambas condiciones, aparece una sola vez.
[
{
_id: ObjectId("..."),
name: 'Alice',
age: 22,
grade: 'A',
major: 'Computer Science'
},
{
_id: ObjectId("..."),
name: 'Bob',
age: 20,
grade: 'B',
major: 'Mathematics'
},
{
_id: ObjectId("..."),
name: 'David',
age: 19,
grade: 'C',
major: 'Computer Science'
}
]
En el siguiente paso, explorará más operadores de comparación. Por ahora, puede permanecer en el shell mongosh.