MongoDB est une base de données orientée documents, à l’inverse de MySQL. Ce système de gestion fonctionne différemment en matière de mémorisation des données, bien que la structure de base présente quelques similitudes :
- Les données sont mémorisées dans des classeurs (collections) et non dans des tableaux.
- Les documents en format BSON remplacent les lignes et les champs définis dans ces documents et les colonnes de requêtes SQL.
- Un champ est toujours composé d’une valeur et d’un nom de champ. Cette valeur peut indiquer des listes de mots ou de chiffres, un texte ou un dossier complet.
- Un document MongoDB est donc un ensemble de paires valeur/clés, tout comme avec MySQL.
La différence principale repose sur le mode de fonctionnement des documents, qui suivent un schéma précis, tandis que les lignes d’un tableau MySQL ont toutes une composition identique. Elles comptent la même quantité de valeurs et comportent toujours le même type de données. Les documents MongoDB ont, en revanche, leur propre structure, individuelle et unique. De cette manière, de nouveaux champs peuvent être ajoutés en tout temps, comportant une valeur définie au choix. Une base de données relationnelle comme MySQL requiert une restructuration complète. La clé doit être unique dans chaque document mais peut se retrouver dans d’autres documents. Ce processus est impossible avec les bases de données MySQL. Des relations (joins) doivent être réglées entre les différents tableaux.
Une autre différence de taille en évoquant le thème MongoDB vs MySQL : l’extraction de données. En tant que base de données NoSQL, MongoDB n’utilise évidemment pas SQL en tant que langage de requête et traite des données dans son propre langage. Cela permet la communication entre MongoDB et le client désigné. Pour cela, la base de données utilise les méthodes spécifiques du langage de programmation du client en question, à l’aide de ce que l’on appelle des libraries, c’est-à-dire des drivers qui peuvent être téléchargés séparément sur la page officielle.
Pour les requêtes les plus complexes, il est possible d’avoir recours au MapReduce, comme avec toutes les bases de données orientées documents.