Appliquer plusieurs conditions
Dans cette étape, vous apprendrez à appliquer plusieurs conditions pour filtrer les documents d'une collection MongoDB. Cela permet des requêtes plus précises en combinant plusieurs critères.
Tout d'abord, ouvrez votre terminal et démarrez le MongoDB Shell. Ce shell interactif est l'endroit où vous exécuterez toutes vos commandes de base de données.
mongosh
Une fois dans le shell mongosh, vous verrez une invite >. Passons à une nouvelle base de données appelée school_database et créons une collection students avec quelques données d'exemple.
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" }
]);
Cette commande insère quatre documents dans la collection students. Maintenant, trouvons les étudiants qui remplissent plusieurs conditions. Nous utiliserons l'opérateur $and pour trouver les étudiants qui ont 20 ans ou plus ET qui ont une note "A".
db.students.find({
$and: [{ age: { $gte: 20 } }, { grade: "A" }]
});
Cette requête utilise $gte, qui signifie "greater than or equal to" (supérieur ou égal à), et $and pour s'assurer que les deux conditions sont remplies. La sortie affichera Alice et Charlie :
[
{
_id: ObjectId("..."),
name: 'Alice',
age: 22,
grade: 'A',
major: 'Computer Science'
},
{
_id: ObjectId("..."),
name: 'Charlie',
age: 25,
grade: 'A',
major: 'Physics'
}
]
Ensuite, utilisons l'opérateur $or pour trouver les documents qui correspondent à au moins une des plusieurs conditions. Cette requête trouve les étudiants qui sont soit en "Computer Science" SOIT ont moins de 21 ans.
db.students.find({
$or: [{ major: "Computer Science" }, { age: { $lt: 21 } }]
});
Cette requête utilise $lt, qui signifie "less than" (inférieur à). Le résultat inclura Alice et David (étudiants en Computer Science) et Bob et David (âgés de moins de 21 ans). Comme David correspond aux deux, il apparaît une seule fois.
[
{
_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'
}
]
Dans la prochaine étape, vous explorerez d'autres opérateurs de comparaison. Pour l'instant, vous pouvez rester dans le shell mongosh.