11 requêtes et opérations MongoDB à connaître absolument
MongoDB est l’une des bases de données NoSQL les plus désirées et admirées pour le développement professionnel. Sa flexibilité, son évolutivité et sa capacité à gérer de gros volumes de données en font un choix de premier ordre pour les applications modernes. Si vous souhaitez maîtriser les requêtes et opérations régulières de MongoDB, vous êtes au bon endroit.
Que vous cherchiez à récupérer et à manipuler efficacement des données, à mettre en œuvre des modèles de données robustes ou à créer des applications réactives, l’acquisition d’une compréhension approfondie des requêtes et opérations courantes de MongoDB améliorera sans aucun doute vos compétences.
1. Créer ou changer de base de données
Créer une base de données localement via le Shell MongoDB est simple, surtout si vous avez mis en place un cluster distant. Vous pouvez créer une nouvelle base de données dans MongoDB à l’aide de la commande use :
Bien que la commande ci-dessus crée une nouvelle base de données, vous pouvez l’utiliser pour basculer vers une base de données existante sans en créer une nouvelle à partir de zéro.
2. Abandonner la base de données
Tout d’abord, basculez vers la base de données que vous souhaitez supprimer à l’aide de la commande utiliser comme cela a été fait précédemment. Ensuite, abandonnez la base de données à l’aide de la commande dropDatabase() :
3. Créer une collection
Pour créer une collection, passez à la base de données cible. Utilisez la fonction createCollection() pour créer une nouvelle collection MongoDB :
Remplacer nom_de_la_collection avec le nom de la collection que vous avez choisi.
4. Insérer un document dans une collection
Lors de l’envoi de données à une collection, vous pouvez insérer un document unique ou un tableau de documents.
Pour insérer un seul document :
Vous pouvez également utiliser la méthode ci-dessus pour insérer un tableau de documents avec un seul ID :
Pour insérer plusieurs documents à la fois, chacun ayant un identifiant distinct, utilisez la méthode insertMany pour insérer plusieurs documents en une seule fois :
5. Obtenir tous les documents d’une collection
Vous pouvez interroger tous les documents d’une collection à l’aide du mot-clé find() pour interroger tous les documents d’une collection :
La fonction ci-dessus renvoie tous les documents contenus dans la collection spécifiée :
Vous pouvez également limiter les données renvoyées à un nombre spécifique. Par exemple, vous pouvez utiliser la commande suivante pour obtenir uniquement les deux premiers documents :
6. Filtrer les documents d’une collection
Il existe de nombreuses façons de filtrer les documents dans MongoDB. Considérez les données suivantes, par exemple :
Si vous ne souhaitez interroger qu’un champ spécifique d’un document, utilisez le filtre trouver méthode :
La méthode ci-dessus renvoie tous les documents pour lesquels la valeur de Aime est Wordle. Il ne sort que les noms et ignore l’identifiant du document.
Vous pouvez également filtrer une collection par un facteur numérique. Si vous souhaitez obtenir les noms de tous les utilisateurs âgés de plus de 21 ans, utilisez la fonction $gt pour filtrer la collection :
La sortie se présente comme suit :
Essayez de remplacer trouver par findOne pour voir ce qui se passe. Cependant, il existe de nombreux autres mots-clés de filtrage :
- $lt: Toutes les valeurs inférieures à la valeur spécifiée.
- $gte: Valeurs égales ou supérieures à la valeur spécifiée.
- $lte: Valeurs inférieures ou égales à la valeur définie.
- $eq: Obtient toutes les valeurs égales à celle spécifiée.
- $ne: Toutes les valeurs qui ne sont pas égales à la valeur spécifiée.
- $in: Utilisez cette fonction lorsque vous effectuez une requête à partir d’un tableau. Elle permet d’obtenir toutes les valeurs correspondant à l’un des éléments du tableau. Les $nin fait le contraire.
7. Requêtes de tri
Le tri permet de classer la requête dans un ordre spécifique. Vous pouvez trier par ordre décroissant ou croissant. N’oubliez pas que le tri nécessite une référence numérique.
Par exemple, pour trier dans l’ordre croissant :
Pour trier la requête ci-dessus par ordre décroissant, remplacez « 1 » par « -1 ».
8. Mettre à jour un document
Les mises à jour de MongoDB nécessitent des opérateurs atomiques pour spécifier comment vous voulez que la mise à jour soit effectuée. Voici une liste des opérateurs atomiques couramment utilisés que vous pouvez associer à une requête de mise à jour :
- $set: Ajouter un nouveau champ ou modifier un champ existant.
- $push: Insérer un nouvel élément dans un tableau. Associez-le à l’élément $each pour insérer plusieurs éléments à la fois.
- $pull: Retirer un élément d’un tableau. A utiliser avec $in pour supprimer plusieurs éléments en une seule fois.
- $unset: Supprime un champ d’un document.
Pour mettre à jour un document et ajouter un nouveau champ, par exemple :
Ce qui précède met à jour le document spécifié comme indiqué :
Pour supprimer le champ « email », il suffit d’utiliser la commande $unset :
Considérons l’échantillon de données suivant :
Vous pouvez insérer un élément dans le fichier éléments à l’aide de la fonction $push :
Voici le résultat :
Utilisez l’opérateur $each pour insérer plusieurs éléments à la fois :
Voici le résultat :
Comme nous l’avons mentionné, l’opérateur $pull supprime un élément d’un tableau :
Les données mises à jour se présentent comme suit :
Inclure l’opérateur $in pour supprimer plusieurs éléments d’un tableau en une seule fois :
9. Supprimer un document ou un champ
Le deleteOne ou deleteMany met à la poubelle un document d’une collection. Utiliser deleteOne pour supprimer un document sur la base d’un champ spécifié :
Si vous souhaitez supprimer plusieurs documents ayant des clés en commun, utilisez deleteMany à la place. La requête ci-dessous supprime tous les documents contenant Échecs en tant que Aime.
10. Opération d’indexation
L’indexation améliore les performances des requêtes en réduisant le nombre de documents que MongoDB doit analyser. Il est souvent préférable de créer un index sur les champs que vous interrogez plus fréquemment.
L’indexation de MongoDB est similaire à la façon dont vous utilisez les index pour optimiser les requêtes SQL. Par exemple, pour créer un index ascendant sur le champ Nom le champ Nom:
Pour dresser la liste de vos index :
Ce qui précède n’est qu’un préambule. Il existe plusieurs autres méthodes pour créer un index dans MongoDB.
11. Agrégation
Le pipeline d’agrégation, une version améliorée de MapReduce, vous permet d’exécuter et de stocker des calculs complexes à partir de MongoDB. Contrairement à MapReduce, qui nécessite l’écriture des fonctions map et reduce dans des fonctions JavaScript distinctes, l’agrégation est simple et n’utilise que des méthodes intégrées à MongoDB.
Prenons par exemple les données de vente suivantes :
En utilisant l’agrégation de MongoDB, vous pouvez calculer et stocker le nombre total de produits vendus pour chaque catégorie comme suit :
La requête ci-dessus renvoie les données suivantes :
Requêtes principales de MongoDB
MongoDB propose de nombreuses méthodes d’interrogation, y compris des fonctionnalités permettant d’améliorer les performances des requêtes. Quel que soit votre langage de programmation, les structures de requête ci-dessus sont rudimentaires pour interagir avec une base de données MongoDB.
Il peut cependant y avoir des différences dans les syntaxes de base. Par exemple, alors que certains langages de programmation comme Python reconnaissent la casse serpent, d’autres, y compris JavaScript, utilisent la casse chameau. Veillez à vous renseigner sur ce qui fonctionne pour la technologie que vous avez choisie.