Maîtrisez les requêtes et les opérations MongoDB à l'aide de ce guide pratique.

MongoDB est l'une des bases de données NoSQL les plus recherchées et les plus 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 les 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 solutions réactives applications, l'acquisition d'une compréhension approfondie des requêtes et opérations MongoDB courantes améliorera sans aucun doute votre compétences.

1. Créer ou changer de bases de données

La création d'une base de données localement via MongoDB Shell est simple, surtout si vous avez configuré un cluster distant. Vous pouvez créer une nouvelle base de données dans MongoDB avec le utiliser commande:

use db_name

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. Déposer la base de données

Tout d'abord, passez à la base de données que vous souhaitez supprimer à l'aide de la utiliser commande comme précédemment. Déposez ensuite la base de données à l'aide de la dropDatabase() commande:

use db_name
db.dropDatabase()

3. Créer une collection

Pour créer une collection, basculez vers la base de données cible. Utilisez le créerCollection() mot-clé pour créer une nouvelle collection MongoDB :

db.createCollection("collection_name")

Remplacer nom_collection avec le nom de 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 seul document ou un tableau de documents.

Pour insérer un seul document :

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Vous pouvez également utiliser la méthode ci-dessus pour insérer un tableau de documents avec un seul ID :

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Pour insérer plusieurs documents à la fois, chacun ayant des identifiants distincts, utilisez la insertMany mot-clé:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Obtenir tous les documents d'une collection

Vous pouvez interroger tous les documents d'une collection à l'aide de la trouver() mot-clé:

db.collection_name.find()

Ce qui précède renvoie tous les documents à l'intérieur de 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 :

db.collection_name.find().limit(2)

6. Filtrer les documents dans une collection

Il existe de nombreuses façons de filtrer les documents dans MongoDB. Considérez les données suivantes, par exemple :

Si vous n'interrogez qu'un champ spécifique dans un document, utilisez la trouver méthode:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Ce qui précède renvoie tous les documents où la valeur de Aime est Wordle. Il affiche uniquement les noms et ignore l'ID du document.

Vous pouvez également filtrer une collection par un facteur numérique. Supposons que vous souhaitiez obtenir les noms de tous les utilisateurs de plus de 21 ans, utilisez la $gt opérateur:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

La sortie ressemble à ceci :

Essayez de remplacer trouver avec trouver un pour voir ce qui se passe. Cependant, il existe de nombreux autres mots-clés de filtrage :

  • $lt: Toutes les valeurs inférieures à celle spécifiée.
  • $gte: Valeurs égales ou supérieures à celle spécifiée.
  • $ lte: Valeurs inférieures ou égales à celle définie.
  • $eq: Obtient toutes les valeurs égales à celle spécifiée.
  • $ne: Toutes les valeurs différentes de celle spécifiée.
  • $ en: Utilisez ceci lors d'une requête basée sur un tableau. Il obtient toutes les valeurs correspondant à l'un des éléments du tableau. Le $nin mot-clé fait le contraire.

7. Trier les requêtes

Le tri permet d'organiser la requête dans un ordre spécifique. Vous pouvez trier par ordre décroissant ou croissant. Gardez à l'esprit que le tri nécessite une référence numérique.

Par exemple, pour trier par ordre croissant :

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Pour trier la requête ci-dessus par ordre décroissant, remplacez "1" par "-1".

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Mettre à jour un document

Les mises à jour de MongoDB nécessitent des opérateurs atomiques pour spécifier comment vous souhaitez que la mise à jour soit effectuée. Voici une liste d'opérateurs atomiques couramment utilisés que vous pouvez associer à une requête de mise à jour :

  • $ ensemble: Ajouter un nouveau champ ou modifier un champ existant.
  • $pousser: insère un nouvel élément dans un tableau. Associez-le avec le $chacun opérateur d'insérer plusieurs éléments à la fois.
  • $ tirer: supprime un élément d'un tableau. Utilisez-le avec $ en pour supprimer de nombreux éléments en une seule fois.
  • $unset: Supprimer un champ d'un document.

Pour mettre à jour un document et ajouter un nouveau champ, par exemple :

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Ce qui précède met à jour le document spécifié comme indiqué :

La suppression du champ e-mail est simple avec le $unset opérateur:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Considérez les exemples de données suivants :

Vous pouvez insérer un élément dans l'existant articles champ de tableau à l'aide de la $pousser opérateur:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Voici la sortie :

Utilisez le $chacun opérateur pour insérer plusieurs éléments à la fois :

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Voici la sortie :

Comme mentionné, le $ tirer L'opérateur supprime un élément d'un tableau :

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Les données mises à jour ressemblent à ceci :

Inclure le $ en mot-clé pour supprimer plusieurs éléments d'un tableau en une seule fois :

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Supprimer un document ou un champ

Le supprimerUn ou deleteMany le mot clé supprime un document d'une collection. Utiliser supprimerUn pour supprimer un document basé sur un champ spécifié :

db.collection_name.deleteOne({"Name":"IDNoble"})

Si vous souhaitez supprimer de nombreux documents avec des clés en commun, utilisez deleteMany plutôt. La requête ci-dessous supprime tous les documents contenant Échecs comme leur Aime.

db.collection.deleteMany({"Likes":"Chess"})

10. Opération d'indexation

L'indexation améliore les performances des requêtes en rationalisant 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 MongoDB est similaire à la façon dont vous utiliser des index pour optimiser les requêtes SQL. Par exemple, pour créer un index croissant sur le Nom champ:

db.collection.createIndex({"Name":1})

Pour lister vos index :

db.collection.getIndexes()

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 depuis MongoDB. Contrairement à MapReduce, qui nécessite d'écrire la carte et les fonctions de réduction dans des Fonctions JavaScript, l'agrégation est simple et n'utilise que les méthodes MongoDB intégrées.

Considérez les données de ventes suivantes, par exemple :

En utilisant l'agrégation de MongoDB, vous pouvez calculer et stocker le nombre total de produits vendus pour chaque catégorie comme suit :

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

La requête ci-dessus renvoie ce qui suit :

Maître des requêtes 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.

Cependant, il peut y avoir des divergences dans les syntaxes de base. Par exemple, alors que certains langages de programmation comme Python reconnaissent les cas de serpent, d'autres, y compris JavaScript, utilisent le cas de chameau. Assurez-vous de rechercher ce qui fonctionne pour la technologie que vous avez choisie.