mercredi, 24 avril 2024

Qu’est-ce que MongoDB ? Un guide rapide pour les développeurs

Les magasins de données NoSQL ont révolutionné le développement de logiciels en offrant plus de flexibilité dans la gestion des données. L’une des principales solutions NoSQL est MongoDB, un magasin de données orienté document. Nous allons explorer ce qu’est MongoDB et comment il peut gérer les exigences de votre application dans cet article.

MongoDB : un magasin de données documentaires

Les bases de données relationnelles stockent les informations dans des tables et des colonnes strictement réglementées. MongoDB est un magasin de documents, qui stocke des informations dans des collections et des documents. La principale différence ici est que les collections et les documents ne sont pas structurés, parfois appelés sans schéma. Cela signifie que la structure d’une instance MongoDB (les collections et les documents) n’est pas prédéfinie et s’adapte à toutes les données qui y sont insérées.

Aussi sur L’Entrepreneur : Comment CRUD avec Node.js et MongoDB ]

Un document est un ensemble clé-valeur, qui se comporte de manière très similaire à un objet dans du code comme JavaScript : sa structure change en fonction des données qui y sont insérées. Cela rend le codage par rapport à un magasin de données comme MongoDB plus facile et plus agile que le codage par rapport à un magasin de données relationnel. En termes simples, l’interaction entre le code de l’application et un magasin de données documentaires semble plus naturelle.

La figure 1 donne un aperçu visuel de la structure des bases de données, des collections et des documents MongoDB.

Figure 1. Banque de documents MongoDB

IDG

La flexibilité héritée de ce type de modélisation de données signifie que les données peuvent être traitées en fonction des demandes d’utilisation, ce qui permet d’améliorer les performances comme décrit ici.

Pour bien comprendre cette différence, comparez les deux manières suivantes d’accomplir la même tâche (créer un enregistrement puis ajouter un champ depuis une application), d’abord dans une base de données relationnelle puis dans MongoDB.

prise en charge quelque peu limitée des jointures (pour plus d’informations, lisez cet article) et il n’y a pas de concept de clé étrangère. Les deux sont une conséquence de la nature dynamique de la structure des données. La modélisation des données dans MongoDB tend vers la dénormalisation, c’est-à-dire la duplication des données dans les documents, au lieu de conserver strictement les données dans des silos de table. Cela améliore la vitesse des recherches au prix d’une maintenance accrue de la cohérence des données.

La dénormalisation n’est pas une exigence, mais plutôt une tendance lors de l’utilisation de bases de données orientées document. Cela est dû à la capacité améliorée de traiter les enregistrements imbriqués complexes, par opposition à la tendance SQL à maintenir les données normalisées (c’est-à-dire non dupliquées) dans des colonnes spécifiques à valeur unique.

Langage de requête MongoDB

Le langage de requête dans MongoDB est orienté JSON, tout comme la structure du document. Cela donne une syntaxe très puissante et expressive qui peut gérer même des documents imbriqués complexes.

Par exemple, vous pouvez interroger notre base de données théorique pour tous les chats en émettant db.pet.find({ "type" : "cat" }) ou tous les chats de Californie avec db .pet.find({ "type" : "cat", "address.state": "CA" }). Notez que le langage de requête traverse le document d’adresse imbriqué.

Syntaxe de mise à jour MongoDB

La syntaxe alter de MongoDB utilise également un format de type JSON, où le mot-clé $set indique quel champ va changer, à quelle valeur. L’objet set prend en charge les documents imbriqués via la notation par points, comme dans la liste 2, où vous modifiez le code postal du chat nommé « Friar Tuck.

Liste 2. Mise à jour d’un document imbriqué

db.people.update(
  {
    "type": "cat",
    "name": "Friar Tuck"
  },
  {< br>     $set : {
       "address.zip": "86004"
     }
  }
)

Vous pouvez voir dans la liste 2 que la syntaxe de mise à jour est tout aussi puissante – en fait plus puissante – que l’équivalent SQL.

Options de déploiement et de cloud MongoDB

MongoDB est conçu pour l’évolutivité et les déploiements distribués. Il est parfaitement capable de gérer des charges de travail à l’échelle du Web.

MongoDB la société propose une solution de clustering de bases de données multicloud dans MongoDB Atlas. MongoDB Atlas agit comme une base de données gérée qui peut s’étendre sur différentes plates-formes cloud et inclut des fonctionnalités d’entreprise telles que la surveillance et la tolérance aux pannes.

Vous obtenez une indication de l’importance de MongoDB dans la mesure où l’offre Amazon DocumentDB d’AWS inclut la compatibilité MongoDB comme principal argument de vente. Azure Cosmos DB de Microsoft suit un modèle similaire avec la prise en charge de l’API MongoDB.

Haute disponibilité dans MongoDB

MongoDB prend en charge les jeux de réplicas pour une haute disponibilité. L’idée de base est que les données sont écrites une fois dans une instance principale, puis dupliquées dans des magasins secondaires pour les lectures. En savoir plus sur la réplication dans MongoDB ici.

Tenez-vous au courant des derniers développements en matière de développement de logiciels. Abonnez-vous à la newsletter L’Entrepreneur First Look ]

En fin de compte, MongoDB est une solution NoSQL de premier plan qui tient la promesse des magasins de données à schéma flexible. Des pilotes avancés sont disponibles pour pratiquement tous les langages de programmation, et vous pouvez également utiliser une multitude d’options de déploiement.

Pour plus de détails sur l’utilisation de MongoDB, consultez cet article sur l’utilisation de MongoDB avec Node.js. Vous pouvez en savoir plus sur les autres options NoSQL et comment choisir parmi elles ici.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici