MongoDB est une base de données NoSQL open source. Puisqu’il s’agit d’une base de données non relationnelle, elle peut traiter des données structurées, semi-structurées et non structurées. Elle utilise un modèle de données non relationnel, orienté document, et un langage de requête non structuré.
MongoDB est très flexible et permet d’associer et de stocker plusieurs types de données. Elle permet également de stocker et de gérer des volumes de données plus importants que les bases de données relationnelles traditionnelles. MongoDB utilise un format de stockage de documents appelé BSON, une forme binaire de JSON (JavaScript Object Notation) qui peut contenir davantage de types de données.
MongoDB stocke les objets de données dans des collections et des documents plutôt que dans des tables et des lignes, comme les bases de données relationnelles traditionnelles. Les collections contiennent plusieurs documents et agissent comme l’équivalent des tables de bases de données relationnelles. Les documents comprennent plusieurs paires clé-valeur et forment l’unité de base des données dans MongoDB.
La structure d’un document peut être modifiée en ajoutant ou supprimant simplement les champs existants. Les documents peuvent définir une clé primaire comme identifiant unique, et les valeurs peuvent être des types de données variés, y compris d’autres documents, des tableaux et des tableaux de documents.
L’une des fonctionnalités principales de MongoDB est la recherche textuelle, qui permet d’interroger les champs de chaîne pour trouver un texte ou des mots spécifiques. La recherche textuelle peut être effectuée à l’aide de l’index texte ou de l’opérateur $text.
L’index texte peut être une chaîne ou un tableau d’éléments de chaîne. Pour interroger les données via la recherche textuelle, la collection doit contenir un index texte. La collection ne peut contenir qu’un index texte, et un même index texte peut être appliqué à plusieurs champs.
On peut également effectuer une recherche dans une collection avec un index texte, en utilisant l’opérateur $text. L’opérateur $text marque chaque chaîne de recherche avec un espace blanc et traite toute la ponctuation, à l’exception de « – » et « \ » qui servent de séparateurs. Après avoir marqué la chaîne de recherche, l’opérateur effectue l’opération logique OR sur les marques.
MongoDB utilise le langage MQL (MongoDB Query Language) pour extraire les données de la base de données. Il est facile à utiliser et fonctionne de manière similaire au langage SQL avec des opérations CRUD pour la création, la lecture, la mise à jour et la suppression de documents. Les noms des fonctions suivent la syntaxe ci-dessous :
<database>.<collection_name>. <operation>.
Voici trois exemples pratiques :
INSERT : créé ou insère un nouveau document dans une collection. Si la collection n’existe pas, une nouvelle collection sera créée.
db.collection.insertOne() insère un document dans une collection.
db.collection.insertMany() insère plusieurs documents à la fois dans une collection.
Pour insérer un document dans la collection de clients :
db.customer.insertOne (
{
firstname: “Jane”,
lastname: “Mason”
Address: “232 Petunia Drive, Atlanta, GA, 30311”
}
FIND : interroge une collection de documents. Des filtres et des critères de requêtes peuvent être appliqués pour trouver des documents spécifiques.
db.collection.find()
Le code suivant permet de trouver tous les documents dans la collection de clients :
db.customer.find()
UPDATE : modifie les documents existants dans une collection.
db.collection.updateOne()
db.collection.updateMany()
db.collection.replaceOne()
Pour mettre à jour un document dans la collection de clients :
db.customer.updateOne(
{ firstname: “Jane” },
{
$set: { “address”, “5 Lavender Ave, Atlanta, GA, 30311”}
}
)
MongoDB possède une architecture de schéma dynamique qui fonctionne avec des données et un stockage non structurés. Les données étant stockées dans des documents flexibles de type JSON, le schéma de base de données n’a pas besoin d’être prédéfini et peut être modifié de manière dynamique sans entraîner d’arrêt.
Avec le format de données BSON de MongoDB, les objets d’une même collection peuvent avoir différents ensembles de champs, et presque tous les types de structures de données peuvent être modélisés et manipulés. Le modèle de base de données flexible de MongoDB s’avère ainsi particulièrement avantageux lorsque les besoins de l’entreprise et les exigences en matière de données évoluent.
MongoDB permet une mise à l’échelle horizontale grâce à un processus appelé sharding. Le sharding permet de diviser les données d’un grand ensemble de données et de les répartir sur plusieurs serveurs. Si un serveur ne peut pas gérer une charge importante de données, celles-ci peuvent être automatiquement divisées et distribuées sans interrompre le traitement.
MongoDB stocke les données dans la RAM pour un accès plus rapide et une meilleure performance lors de l’exécution des requêtes. Les données sont collectées directement à partir de la RAM au lieu du disque dur, ce qui accélère la lecture et l’écriture. Avec sa structure de données non relationnelle, MongoDB nécessite également moins de puissance de traitement pour rechercher et récupérer des données qu’une base de données relationnelle.
Puisque MongoDB est une base de données NoSQL, elle est adaptée à l’intégration et au traitement du Big Data (c’est-à-dire d’énormes quantités de données diverses trop importantes pour être traitées par les bases de données relationnelles traditionnelles).
Sans schéma, elle peut stocker différents types de données et y accéder à la volée. La prise en charge intégrée du sharding lui permet également d’assurer la mise à l’échelle horizontale des données sur plusieurs serveurs. De plus, MongoDB offre la flexibilité nécessaire pour fusionner des centaines de sources de données en une seule vue pour l’analytique et l’intégration des données en temps réel.
Le modèle de document non structuré de MongoDB en fait une excellente option pour la gestion et la diffusion du contenu des sites Web d’e-commerce, des publications en ligne et des systèmes de gestion de contenus Web. Son modèle de données flexible permet de stocker facilement plusieurs types de contenu, notamment des images, du texte et des vidéos, ainsi que des métadonnées.
Tout le contenu associé est stocké dans un document unique, ce qui facilite l’ajout de nouvelles fonctions et de nouveaux attributs. MongoDB peut également servir à stocker le contenu généré par les utilisateurs, comme les commentaires, qui peuvent être analysés et utilisés pour le développement de futurs contenus.
MySQL est un système de gestion de bases de données relationnelles (SGBDR) géré par Oracle. Il utilise un langage de requête structuré (SQL), qui représente les données dans des lignes et des tableaux prédéfinis. MySQL utilise l’opérateur JOIN pour récupérer les données des tables associées. Il ne permet pas une réplication ou un sharding efficace.
MongoDB est une base de données multi-plateforme open source gérée par MongoDB, Inc. Il s’agit d’une base de données orientée document qui vise à gérer les demandes de données des applications logicielles modernes. Elle utilise le langage de requête JavaScript et représente les données sous forme de documents JSON. MongoDB ne nécessite pas de schéma prédéfini, ce qui signifie que les documents d’une même collection peuvent avoir des structures différentes.
MySQL utilise des opérations JOIN pour accéder aux données et interroger les données associées dans plusieurs tables. Bien que cela minimise la duplication des données, les millions de lectures et d’écritures qui en résultent peuvent affecter les performances.
Le modèle de document de MongoDB stocke les données associées ensemble, ce qui permet de récupérer les documents plus rapidement qu’avec MySQL. Grâce à l’utilisation de la réplication maître-esclave, MongoDB peut traiter de grandes quantités de données non structurées beaucoup plus rapidement que MySQL.
Le choix de MongoDB ou de MySQL dépendra de vos cas d’utilisation spécifiques et des besoins de votre entreprise, mais MongoDB offre certains avantages par rapport à MySQL. Notamment :
MongoDB et MySQL sont des systèmes de gestion de bases de données fondamentalement différents, mais qui excellent dans des scénarios spécifiques.
MongoDB permet aux organisations de créer des applications plus rapidement et convient au traitement de divers types et de grandes quantités de données. Utilisez MongoDB si vous avez besoin d’une disponibilité élevée des données et de schémas flexibles, si vous souhaitez évoluer rapidement ou prendre en charge le Big Data et l’analytique.
Il sera préférable de choisir MySQL si votre schéma de données est stable et si vous n’avez pas besoin de stocker des données non structurées. Optez pour MySQL si vous avez besoin d’un taux de transaction élevé, de la sécurité que procure l’intégrité référentielle, ou si votre structure de données n’est pas susceptible de changer.
Avec son basculement automatique et sa mise à l’échelle horizontale, MongoDB est une base de données open source conçue pour les applications modernes. Son modèle de données documentaires prend en charge le format JSON et s’adapte naturellement aux langages orientés objet, ce qui simplifie le développement. Son langage de requête est facile à apprendre et à utiliser pour les développeurs.
Modernisez votre stockage avec Pure Storage® FlashBlade®, la solution 100 % flash la plus avancée du marché pour consolider un stockage rapide de fichiers et de données par objets. FlashBlade propose :
Vous avez des questions ou des commentaires concernant des produits ou certifications Pure ? Nous sommes là pour vous aider.
Planifiez une démo en direct et découvrez comment Pure peut vous aider à transformer vos données.
Tél. : +33 1 89 96 04 00
Services Médias : pr@purestorage.com
Pure Storage France
32 rue Guersant
75017 Paris