Aplicar Múltiplas Condições
Nesta etapa, você aprenderá a aplicar múltiplas condições para filtrar documentos em uma coleção MongoDB. Isso permite consultas mais precisas ao combinar vários critérios.
Primeiro, abra seu terminal e inicie o MongoDB Shell. Este shell interativo é onde você executará todos os seus comandos de banco de dados.
mongosh
Uma vez dentro do shell mongosh, você verá um prompt >. Vamos mudar para um novo banco de dados chamado school_database e criar uma coleção students com alguns dados de exemplo.
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 insere quatro documentos na coleção students. Agora, vamos encontrar alunos que atendam a múltiplas condições. Usaremos o operador $and para encontrar alunos que tenham 20 anos ou mais E tenham a nota "A".
db.students.find({
$and: [{ age: { $gte: 20 } }, { grade: "A" }]
});
Esta consulta usa $gte, que significa "maior ou igual a" (greater than or equal to), e $and para garantir que ambas as condições sejam atendidas. A saída mostrará Alice e Charlie:
[
{
_id: ObjectId("..."),
name: 'Alice',
age: 22,
grade: 'A',
major: 'Computer Science'
},
{
_id: ObjectId("..."),
name: 'Charlie',
age: 25,
grade: 'A',
major: 'Physics'
}
]
Em seguida, usaremos o operador $or para encontrar documentos que correspondam a pelo menos uma de várias condições. Esta consulta encontra alunos que estão cursando "Computer Science" OU têm menos de 21 anos.
db.students.find({
$or: [{ major: "Computer Science" }, { age: { $lt: 21 } }]
});
Esta consulta usa $lt, que significa "menor que" (less than). O resultado incluirá Alice e David (estudantes de Ciência da Computação) e Bob e David (com menos de 21 anos). Como David atende a ambas as condições, ele aparece uma 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'
}
]
Na próxima etapa, você explorará mais operadores de comparação. Por enquanto, você pode permanecer no shell mongosh.