De meeste softwaretoepassingen bevatten tegenwoordig enige dynamische gegevensopslag voor uitgebreide toekomstige referentie in de toepassing zelf. We weten allemaal dat gegevens worden opgeslagen in een database die in twee categorieën valt, namelijk:relationele en niet-relationele DBMS.
Uw keuze uit deze twee hangt volledig af van uw gegevensstructuur, de hoeveelheid betrokken gegevens, databaseprestaties en schaalbaarheid.
Relationele DBMS slaan gegevens op in tabellen in termen van rijen, zodat ze Structured Querying Language (SQL) gebruiken, waardoor ze een goede keuze zijn voor toepassingen waarbij meerdere transacties betrokken zijn. Ze omvatten MySQL, SQLite en PostgreSQL.
Aan de andere kant zijn NoSQL DBMS zoals MongoDB documentgericht, zodat gegevens in collecties worden opgeslagen in termen van documenten. Dit geeft een grotere opslagcapaciteit voor een grote set gegevens en dus een verder voordeel in schaalbaarheid.
In deze blog gaan we ervan uit dat je een betere kennis hebt van MongoDB of MySQL en daarom graag de correlatie tussen de twee zou willen weten in termen van query's en databasestructuur.
Hieronder vindt u een spiekbriefje om uzelf verder vertrouwd te maken met het opvragen van MySQL naar MongoDB.
MySQL naar MongoDB Cheatsheet - Voorwaarden
MySQL-voorwaarden | MongoDB-voorwaarden | Uitleg |
---|---|---|
Tabel | Collectie | Dit is de opslagcontainer voor gegevens die meestal vergelijkbaar zijn in de ingesloten objecten. |
Rij | Document | Definieert de entiteit met één object in de tabel voor MySQL en verzameling in het geval van MongoDB. |
Kolom | Veld | Voor elk opgeslagen item heeft het eigenschappen die worden gedefinieerd door verschillende waarden en gegevenstypen. In MongoDB kunnen documenten in dezelfde collectie verschillende velden van elkaar hebben. In MySQL moet elke rij worden gedefinieerd met dezelfde kolommen als de bestaande. |
Primaire sleutel | Primaire sleutel | Elk opgeslagen object wordt geïdentificeerd met een unieke veldwaarde. In het geval van MongoDB hebben we het _id-veld automatisch ingesteld, terwijl u in MySQL uw eigen primaire sleutel kunt definiëren die incrementeel is als u nieuwe rijen maakt. |
Tabel-deelnames | Documenten insluiten en linken | Verbinding gekoppeld aan een object in een andere verzameling/tabel met gegevens in een andere verzameling/tabel. |
waar | $match | Gegevens selecteren die voldoen aan criteria. |
groep | $group | Gegevens groeperen volgens bepaalde criteria. |
drop | $unset | Een kolom/veld verwijderen uit een rij/document/ |
set | $set | De waarde van een bestaande kolom/veld instellen op een nieuwe waarde. |
Schemaverklaringen
MySQL-tabelverklaringen | MongoDB incassoverklaringen | Uitleg |
---|---|---|
De database en tabellen worden expliciet gemaakt via het PHP-beheerderspaneel of gedefinieerd in een script, d.w.z. Een database maken Een tafel maken | De database kan impliciet of expliciet worden aangemaakt. Impliciet tijdens het invoegen van het eerste document worden de database en verzameling aangemaakt en wordt er automatisch een _id-veld aan dit document toegevoegd. U kunt de database ook expliciet maken door deze opmerking in de Mongo Shell uit te voeren | In MySQL moet u de kolommen specificeren in de tabel die u aan het maken bent, evenals enkele validatieregels instellen, zoals in dit voorbeeld het type gegevens en de lengte die naar een specifieke kolom gaan. In het geval van MongoDB is het geen must om noch de velden te definiëren die elk document zou moeten bevatten, noch de validatieregels die de gespecificeerde velden zouden moeten bevatten. In MongoDB voor gegevensintegriteit en consistentie kunt u echter de validatieregels instellen met behulp van de JSON SCHEMA VALIDATOR |
Een tafel laten vallen | | Dit zijn instructies voor het verwijderen van een tabel voor MySQL en verzameling in het geval van MongoDB. |
Een nieuwe kolom toevoegen met de naam join_date De kolom join_date verwijderen als deze al is gedefinieerd | Een nieuw veld toevoegen met de naam join_date Hiermee worden alle documenten in de collectie bijgewerkt zodat de datum van deelname de huidige datum is. Het veld join_date verwijderen indien al gedefinieerd Hiermee wordt het veld join_date verwijderd uit alle incassodocumenten. | De structuur van het schema wijzigen door een kolom/veld toe te voegen of weg te laten. Aangezien de MongoDB-architectuur de documentstructuur niet strikt afdwingt, kunnen documenten velden hebben die van elkaar verschillen. |
Een index maken met de kolom UserId oplopend en Leeftijd aflopend | Een index maken met de velden UserId en Age. | Indexen worden over het algemeen gemaakt om het zoekproces te vergemakkelijken. |
| | Nieuwe records invoegen. |
| | Records verwijderen uit de tabel/verzameling waarvan de leeftijd gelijk is aan 25. |
| | Alle records van de tafel/verzameling verwijderen. |
| | Retourneert alle records uit de gebruikerstabel/verzameling met alle kolommen/velden. |
| | Retourneert alle records uit de gebruikerstabel/verzameling met Leeftijd, Geslacht en primaire sleutelkolommen/velden. |
| | Retourneert alle records uit de gebruikerstabel/verzameling met kolommen/velden Leeftijd en Geslacht. De primaire sleutel is weggelaten. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de geslachtswaarde is ingesteld op M. |
| | Retourneert alle records uit de gebruikerstabel/verzameling met alleen de geslachtswaarde maar waarvan de leeftijdswaarde gelijk is aan 25. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de geslachtswaarde is ingesteld op F en de leeftijd 25 is. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de Leeftijdswaarde niet gelijk is aan 25. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de geslachtswaarde is ingesteld op F of de leeftijd 25 is. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de Leeftijdswaarde groter is dan 25. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de Leeftijdswaarde kleiner is dan of gelijk is aan 25. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de naamwaarde toevallig He-letters heeft. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de geslachtswaarde is ingesteld op F en sorteert dit resultaat in oplopende volgorde van de id-kolom in het geval van MySQL en de tijd ingevoegd in het geval van MongoDB. |
| | Retourneert alle records uit de gebruikerstabel/verzameling waarvan de geslachtswaarde is ingesteld op F en sorteert dit resultaat in de aflopende volgorde van de id-kolom in het geval van MySQL en de tijd ingevoegd in het geval van MongoDB. |
| of | Telt alle records in de gebruikerstabel/verzameling. |
| of | Telt alle records in de gebruikerstabel/verzameling die toevallig een waarde hebben voor de eigenschap Name. |
| of | Retourneert het eerste record in de gebruikerstabel/verzameling. |
| | Retourneert het eerste record in de gebruikerstabel/verzameling die toevallig een geslachtswaarde heeft die gelijk is aan F. |
| | Retourneert de vijf records in de gebruikerstabel/verzameling na het overslaan van de eerste vijf records. |
| | Dit stelt de leeftijd in van alle records in de gebruikerstabel/verzameling met een leeftijd tussen 25 en 26. |
| | Dit verhoogt de leeftijd van alle records in de gebruikerstabel/verzameling met 1. |
| | Dit verlaagt de leeftijd van het eerste record in de gebruikerstabel/verzameling met 1. |
Om MySQL en/of MongoDB centraal en vanaf één punt te beheren, gaat u naar:https://severalnines.com/product/clustercontrol.