La plupart des applications logicielles impliquent aujourd'hui un stockage de données dynamique pour une référence future étendue dans l'application elle-même. Nous savons tous que les données sont stockées dans une base de données qui se divise en deux catégories :les SGBD relationnels et non relationnels.
Votre choix de sélection parmi ces deux dépendra entièrement de votre structure de données, de la quantité de données impliquées, des performances et de l'évolutivité de la base de données.
Les SGBD relationnels stockent les données dans des tables en termes de lignes de sorte qu'ils utilisent le langage SQL (Structured Querying Language), ce qui en fait un bon choix pour les applications impliquant plusieurs transactions. Ils incluent MySQL, SQLite et PostgreSQL.
D'autre part, les SGBD NoSQL tels que MongoDB sont orientés document, de sorte que les données sont stockées dans des collections en termes de documents. Cela donne une plus grande capacité de stockage pour un grand ensemble de données, d'où un avantage supplémentaire en termes d'évolutivité.
Dans ce blog, nous supposons que vous avez une meilleure connaissance de MongoDB ou de MySQL et que vous aimeriez donc connaître la corrélation entre les deux en termes d'interrogation et de structure de base de données.
Vous trouverez ci-dessous une feuille de triche pour vous familiariser davantage avec l'interrogation de MySQL à MongoDB.
Feuille de triche MySQL vers MongoDB – Termes
Termes MySQL | Conditions MongoDB | Explication |
---|---|---|
Tableau | Collection | Il s'agit du conteneur de stockage des données qui ont tendance à être similaires dans les objets contenus. |
Ligne | Document | Définit l'entité d'objet unique dans la table pour MySQL et la collection dans le cas de MongoDB. |
Colonne | Champ | Pour chaque élément stocké, il a des propriétés qui sont définies par différentes valeurs et types de données. Dans MongoDB, les documents d'une même collection peuvent avoir des champs différents les uns des autres. Dans MySQL, chaque ligne doit être définie avec les mêmes colonnes que celles existantes. |
Clé primaire | Clé primaire | Chaque objet stocké est identifié par une valeur de champ unique. Dans le cas de MongoDB, le champ _id est défini automatiquement, tandis que dans MySQL, vous pouvez définir votre propre clé primaire qui est incrémentielle lorsque vous créez de nouvelles lignes. |
Jointures de tables | Intégrer et lier des documents | Connexion associée à un objet dans une autre collection/table aux données d'une autre collection/table. |
où | $match | Sélectionner des données qui correspondent aux critères. |
groupe | $groupe | Regroupement des données selon certains critères. |
déposer | $unset | Supprimer une colonne/un champ d'une ligne/un document/ |
définir | $set | Définition de la valeur d'une colonne/champ existante sur une nouvelle valeur. |
Déclarations de schéma
Instructions de table MySQL | Déclarations de collecte MongoDB | Explication |
---|---|---|
La base de données et les tables sont créées explicitement via le panneau d'administration PHP ou définies dans un script, c'est-à-dire Création d'une base de données Création d'un tableau | La base de données peut être créée implicitement ou explicitement. Implicitement lors de la première insertion de document, la base de données et la collection sont créées ainsi qu'un champ _id automatique ajouté à ce document. Vous pouvez également créer la base de données explicitement en exécutant ce commentaire dans le Mongo Shell | Dans MySQL, vous devez spécifier les colonnes de la table que vous créez ainsi que définir certaines règles de validation comme dans cet exemple le type de données et la longueur qui vont à une colonne spécifique. Dans le cas de MongoDB, il n'est pas indispensable de définir ni les champs que chaque document doit contenir ni les règles de validation que les champs spécifiés doivent contenir. Cependant, dans MongoDB pour l'intégrité et la cohérence des données, vous pouvez définir les règles de validation à l'aide du JSON SCHEMA VALIDATOR |
Déposer une table | | Ce sont des instructions pour supprimer une table pour MySQL et une collection dans le cas de MongoDB. |
Ajout d'une nouvelle colonne appelée join_date Suppression de la colonne join_date si déjà définie | Ajout d'un nouveau champ appelé join_date Cela mettra à jour tous les documents de la collection pour que la date de jointure soit la date actuelle. Suppression du champ join_date s'il est déjà défini Cela supprimera le champ join_date de tous les documents de collection. | Modification de la structure du schéma en ajoutant ou en supprimant une colonne/un champ. Étant donné que l'architecture MongoDB ne s'applique pas strictement à la structure du document, les documents peuvent avoir des champs différents les uns des autres. |
Création d'un index avec la colonne UserId ascendante et Age descendant | Création d'un index impliquant les champs UserId et Age. | Les index sont généralement créés pour faciliter le processus d'interrogation. |
| | Insertion de nouveaux enregistrements. |
| | Suppression des enregistrements de la table/collection dont l'âge est égal à 25. |
| | Suppression de tous les enregistrements de la table/collection. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs avec toutes les colonnes/champs. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs avec l'âge, le sexe et les colonnes/champs de clé primaire. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs avec les colonnes/champs Âge et Sexe. La clé primaire est omise. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Sexe est définie sur M. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs avec uniquement la valeur Sexe mais dont la valeur Âge est égale à 25. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Sexe est définie sur F et l'âge est 25. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Age n'est pas égale à 25. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Sexe est définie sur F ou dont l'âge est de 25 ans. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Age est supérieure à 25. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Age est inférieure ou égale à 25. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Nom se trouve avoir des lettres He. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Gender est définie sur F et trie ce résultat dans l'ordre croissant de la colonne id dans le cas de MySQL et de l'heure insérée dans le cas de MongoDB. |
| | Renvoie tous les enregistrements de la table/collection des utilisateurs dont la valeur Gender est définie sur F et trie ce résultat dans l'ordre décroissant de la colonne id dans le cas de MySQL et de l'heure insérée dans le cas de MongoDB. |
| ou | Compte tous les enregistrements dans la table/collection des utilisateurs. |
| ou | Compte tous les enregistrements de la table/collection des utilisateurs qui ont une valeur pour la propriété Name. |
| ou | Renvoie le premier enregistrement de la table/collection des utilisateurs. |
| | Renvoie le premier enregistrement de la table/collection des utilisateurs qui a une valeur de sexe égale à F. |
| | Renvoie les cinq enregistrements de la table/collection des utilisateurs après avoir ignoré les cinq premiers enregistrements. |
| | Cela définit l'âge de tous les enregistrements de la table/collection des utilisateurs dont l'âge est supérieur à 25 à 26 ans. |
| | Cela augmente l'âge de tous les enregistrements de la table/collection des utilisateurs de 1. |
| | Cela décrémente l'âge du premier enregistrement dans la table/collection des utilisateurs de 1. |
Pour gérer MySQL et/ou MongoDB de manière centralisée et à partir d'un point unique, visitez :https://severalnines.com/product/clustercontrol.