Retour
MongoDB: Les Opérateurs

Ce cours traite des filtres et opérateurs avec MongoDB, qui sont des outils essentiels pour manipuler et récupérer des données stockées dans une base de données MongoDB.
Les filtres et opérateurs permettent de préciser et d'affiner les requêtes pour extraire uniquement les données dont vous avez besoin.
Prérequis
Ce cours s'adresse aux débutants et ne nécessite pas de connaissances préalables en base de données.
Toutefois, une connaissance de base de la programmation en Javascript et en lignes de commande est un plus.
- Intiation au langage Javascript.
- BIENTOT: Intiation au langage machine BASH.
Vous devez avoir installé MongoDB sur votre ordinateur avant de commencer ce cours.
Installation et configuration de MongoDB.
Objectifs
Dans cette section du cours, nous allons introduire les opérateurs de MongoDB et expliquer pourquoi ils sont importants pour manipuler et récupérer des données stockées dans une base de données MongoDB.
Les objectifs d'apprentissage de cette section sont les suivants :
- Comprendre l'importance des opérateurs dans MongoDB pour manipuler et récupérer des données stockées dans une base de données MongoDB.
- Apprendre les filtres de base tels que les opérateurs de comparaison, logiques etc, pour extraire des données précises.
- Améliorer la compréhension de la syntaxe de MongoDB et la capacité à écrire des requêtes MongoDB plus complexes.
- Être en mesure de résoudre des problèmes spécifiques liés à la récupération de données dans MongoDB grâce à la maîtrise des filtres et opérateurs.
1. Les opérateurs basiques
Les filtres sont utilisés pour spécifier des critères de recherche afin d'extraire des données à partir d'une collection MongoDB.
La syntaxe de base pour les filtres dans MongoDB consiste en une paire de clé-valeur, où la clé représente le champ dans la collection et la valeur représente la valeur à rechercher pour ce champ.
Pour chaque filtres, nous pouvons utiliser des opérateurs pour affiner les reqûetes et peuvent être combinés en utilisant des opérateurs logiques pour créer des requêtes plus complexes.
1. Opérateurs de comparaison
Les opérateurs de comparaison sont utilisés pour comparer une valeur de champ à une valeur spécifique.
Les opérateurs de comparaison incluent $eq
(égal), $ne
(différent), $gt
(supérieur), $gte
(supérieur ou égal), $lt
(inférieur) et $lte
(inférieur ou égal).
Dans l'exemple ci-dessous, nous récupérons les documents de la collection "books" qui ont une valeur supérieure ou égale à 10
pour le champ price
:
db.books.find({ price: { $gte: 10 } })
2. Opérateurs logiques
Les opérateurs logiques sont utilisés pour combiner des filtres.
Les opérateurs logiques incluent $and
(ET), $or
(OU) et $not
(NON):
db.collection.find({ $operateur: [ { champ1: valeur1 }, { champ2: valeur2 } ] })
Dans l'exemple ci-dessous, nous récupérons les documents de la collection books
qui sont en ligne et dont le prix in infèrieure à 12
:
db.books.find({ $and: [ { online: true }, price: { $lt: 10 } ] })
3. Opérateurs d'éléments
Les opérateurs d'éléments sont utilisés pour rechercher des documents en fonction de la présence ou de l'absence d'un champ spécifique.
Les opérateurs d'éléments incluent $exists
(existe) et $type
(type).
db.collection.find({ champ: { $exists: bool }})
L'opérateur $type
permet de vérifier le type de données d'un champ dans un document. Sa syntaxe est la suivante :
db.collection.find({ champ: { $type: type } })
où champ
est le nom du champ à vérifier et type
est le type de données attendues (par exemple, string
, number
, bool
, array
, etc.).
Dans l'exemple ci-dessous, nous récupérons les documents de la collection "books" qui possèdent le champ image
:
db.books.find({ image: { $exists: true }})
4. Opérateurs regex
L'opérateur $regex
permet de rechercher des documents contenant une expression régulière spécifique dans un champ texte.
Sa syntaxe est la suivante :
db.collection.find({ champ: { $regex: /expression régulière/ } })
où champ
est le nom du champ à vérifier et /expression régulière/
est l'expression régulière utilisée pour la recherche.
Dans l'exemple ci-dessous, nous récupérons les documents de la collection books
dont le titre contient Harry
:
db.books.find({ title: { $regex: /Harry/ }})
2. Opérateurs de tableaux
Les tableaux sont une structure de données couramment utilisée dans MongoDB pour stocker des informations.
Les opérateurs de tableaux sont utilisés pour rechercher des documents en fonction de la présence ou de l'absence d'un élément dans un tableau, ou pour interroger des tableaux de manière plus complexe.
Les opérateurs de filtres de tableaux incluent $in
, $nin
, $size
, $all
...
Il existe aussi des opérateurs de tableau permettant la modification des éléments du tableau:
Les opérateurs de mise à jour tableaux incluent $pull
, $push
...
- Documentation officiel sur les opérateurs de filtres de tableau
- Documentation officiel sur les opérateurs de mises à jour de tableau
1. Opérateur $in et $nin
L'opérateur $in
est utilisé pour sélectionner les documents dont le tableau possède au moins un élément égale à une des élément du tableau sécifié.
Dans l'exemple suivant, nous allons séléctionner tous les documents possèdant Fiction
ou Fatasy
dans le champ genres
db.books.find({ genres: { $in: [ "Fiction", "Fantasy" ] } })
L'opérateur $nin
est utilisé pour sélectionner les documents dont le tableau ne possède aucun éléments du tableau sécifié.
Dans l'exemple suivant, nous allons séléctionner tous les documents ne possèdant pas Fiction
et Fatasy
dans le tableau genres
db.books.find({ genres: { $nin: [ "Fiction", "Fantasy" ] } })
2. Opérateur $all
L'opérateur $all
est utilisé pour sélectionner les documents dont le tableau contient toutes valeurs spécifiées.
Dans l'exemple suivant, nous allons séléctionner tous les documents dans le tableau genres
contient au minimum Fiction
et Fantasy
.
db.books.find({ genres: { $all: [ "Fiction", "Fantasy" ] } })
3. Opérateur $size
L'opérateur $size
est utilisé pour sélectionner les documents dont la taille d'un champ tableau correspond à une valeur spécifiée.
Voici un exemple :
db.books.find({ genres: { $size: 3 } })
4. Opérateur $push
Cet opérateur est utilisé pour ajouter un élément à un tableau dans un document.
Si le tableau n'existe pas encore, il est créé automatiquement.
db.books.find({title:"The shining"}, { $push: "Fiction" });
5. Opérateur $pull
Cet opérateur est utilisé pour supprimer un élément à un tableau dans un document.
db.books.find({title:"The shining"}, { $pull: "Fiction" });
Conclusion
En conclusion, nous avons vu que les opérateurs de MongoDB sont des outils puissants pour manipuler et interroger les données stockées dans une base de données MongoDB.
Nous avons exploré les filtres de base et avancés, et nous avons également souligné l'importance de maîtriser ces concepts pour pouvoir tirer le meilleur parti de MongoDB.
Maintenant que vous avez acquis une compréhension solide des filtres et opérateurs de MongoDB, vous pouvez poursuivre votre apprentissage en explorant davantage de fonctionnalités avancées.
N'oubliez pas que la documentation officielle de MongoDB est une ressource précieuse pour approfondir vos connaissances et découvrir de nouvelles fonctionnalités.
Pour aller plus loin, vous pouvez entamer la série de cours pour utiliser MongoDB avec Node.js en utilisant la librairie Mongoose:
- Node.js + Mongoos: Apprendre à utiliser MongoDB dans une applications Javascript.
Aller plus loin
Commentaires
1