La maggior parte delle applicazioni software al giorno d'oggi implica una memorizzazione dinamica dei dati per un ampio riferimento futuro nell'applicazione stessa. Sappiamo tutti che i dati sono archiviati in un database che rientra in due categorie che sono:DBMS relazionali e non relazionali.
La scelta della scelta tra questi due dipenderà interamente dalla struttura dei dati, dalla quantità di dati coinvolti, dalle prestazioni del database e dalla scalabilità.
I DBMS relazionali archiviano i dati nelle tabelle in termini di righe in modo tale da utilizzare SQL (Structured Querying Language), rendendoli una buona scelta per le applicazioni che coinvolgono più transazioni. Includono MySQL, SQLite e PostgreSQL.
D'altra parte, i DBMS NoSQL come MongoDB sono orientati ai documenti in modo tale che i dati vengano archiviati in raccolte in termini di documenti. Ciò offre una maggiore capacità di archiviazione per un ampio set di dati, quindi un ulteriore vantaggio in termini di scalabilità.
In questo blog presumiamo che tu abbia una migliore conoscenza di MongoDB o MySQL e quindi vorremmo conoscere la correlazione tra i due in termini di query e struttura del database.
Di seguito è riportato un cheat sheet per familiarizzare ulteriormente con l'esecuzione di query da MySQL a MongoDB.
Cheat sheet da MySQL a MongoDB - Termini
Termini di MySQL | Termini di MongoDB | Spiegazione |
---|---|---|
Tabella | Collezione | Questo è il contenitore di archiviazione per i dati che tendono ad essere simili negli oggetti contenuti. |
Riga | Documento | Definisce l'entità oggetto singolo nella tabella per MySQL e la raccolta nel caso di MongoDB. |
Colonna | Campo | Per ogni elemento memorizzato, ha proprietà che sono definite da diversi valori e tipi di dati. In MongoDB, i documenti nella stessa raccolta possono avere campi diversi l'uno dall'altro. In MySQL, ogni riga deve essere definita con le stesse colonne di quelle esistenti. |
Chiave primaria | Chiave primaria | Ogni oggetto memorizzato è identificato con un valore di campo univoco nel caso di MongoDB abbiamo il campo _id impostato automaticamente mentre in MySQL puoi definire la tua chiave primaria che è incrementale quando crei nuove righe. |
Unità di tabelle | Incorporamento e collegamento di documenti | Connessione associata a un oggetto in una raccolta/tabella diversa ai dati in un'altra raccolta/tabella. |
dove | $corrispondenza | Selezione dei dati che corrispondono ai criteri. |
gruppo | $gruppo | Raggruppare i dati secondo alcuni criteri. |
rilascia | $unset | Rimozione di una colonna/campo da una riga/documento/ |
imposta | $set | Impostazione del valore di una colonna/campo esistente su un nuovo valore. |
Dichiarazioni di schema
Istruzioni sulla tabella MySQL | Rendiconti di raccolta MongoDB | Spiegazione |
---|---|---|
Il database e le tabelle vengono creati esplicitamente tramite il pannello di amministrazione di PHP o definiti all'interno di uno script, ad esempio Creazione di un database Creazione di una tabella | Il database può essere creato in modo implicito o esplicito. Implicitamente durante il primo inserimento del documento vengono creati il database e la raccolta, nonché un campo _id automatico che viene aggiunto a questo documento. Puoi anche creare il database in modo esplicito eseguendo questo commento in Mongo Shell | In MySQL, devi specificare le colonne nella tabella che stai creando e impostare alcune regole di convalida come in questo esempio il tipo di dati e la lunghezza che va a una colonna specifica. Nel caso di MongoDB, non è necessario definire né i campi che ogni documento deve contenere né le regole di convalida che devono contenere i campi specificati. Tuttavia, in MongoDB per l'integrità e la coerenza dei dati puoi impostare le regole di convalida utilizzando JSON SCHEMA VALIDATOR |
Eliminazione di una tabella | | Si tratta di istruzioni per l'eliminazione di una tabella per MySQL e la raccolta nel caso di MongoDB. |
Aggiunta di una nuova colonna chiamata join_date Rimozione della colonna join_date se già definita | Aggiunta di un nuovo campo chiamato join_date Questo aggiornerà tutti i documenti nella raccolta per avere la data di iscrizione come data corrente. Rimozione del campo join_date se già definito Questo rimuoverà il campo join_date da tutti i documenti di raccolta. | Alterare la struttura dello schema aggiungendo o eliminando una colonna/campo. Poiché l'architettura MongoDB non applica rigorosamente la struttura del documento, i documenti possono avere campi diversi l'uno dall'altro. |
Creazione di un indice con la colonna UserId crescente e Age decrescente | Creazione di un indice che coinvolga i campi UserId ed Age. | Gli indici sono generalmente creati per facilitare il processo di interrogazione. |
| | Inserimento di nuovi record. |
| | Eliminazione di record dalla tabella/raccolta la cui età è pari a 25. |
| | Eliminazione di tutti i record dalla tabella/raccolta. |
| | Restituisce tutti i record dalla tabella/raccolta utenti con tutte le colonne/campi. |
| | Restituisce tutti i record dalla tabella/raccolta utenti con colonne/campi Età, Sesso e chiave primaria. |
| | Restituisce tutti i record dalla tabella/raccolta utenti con colonne/campi Età e Sesso. La chiave primaria è omessa. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di genere è impostato su M. |
| | Restituisce tutti i record dalla tabella/raccolta utenti con solo il valore Sesso ma il cui valore Età è uguale a 25. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di genere è impostato su F e l'età è 25. |
| | Restituisce tutti i record dalla tabella/raccolta utenti il cui valore di età non è uguale a 25. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di genere è impostato su F o l'età è 25. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di età è maggiore di 25. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di età è inferiore o uguale a 25. |
| | Restituisce tutti i record dalla tabella/raccolta utenti il cui valore Nome ha lettere He. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di genere è impostato su F e ordina questo risultato in ordine crescente della colonna id nel caso di MySQL e dell'ora inserita nel caso di MongoDB. |
| | Restituisce tutti i record dalla tabella/raccolta degli utenti il cui valore di genere è impostato su F e ordina questo risultato in ordine decrescente della colonna id nel caso di MySQL e l'ora inserita nel caso di MongoDB. |
| o | Conta tutti i record nella tabella/raccolta degli utenti. |
| o | Conta tutti i record nella tabella/raccolta utenti che hanno un valore per la proprietà Nome. |
| o | Restituisce il primo record nella tabella/raccolta degli utenti. |
| | Restituisce il primo record nella tabella/raccolta degli utenti che ha il valore di genere uguale a F. |
| | Restituisce i cinque record nella tabella/raccolta degli utenti dopo aver saltato i primi cinque record. |
| | Imposta l'età di tutti i record nella tabella/raccolta utenti che hanno un'età compresa tra 25 e 26 anni. |
| | Ciò aumenta di 1 l'età di tutti i record nella tabella/raccolta degli utenti. |
| | Ciò riduce di 1 l'età del primo record nella tabella/raccolta degli utenti. |
Per gestire MySQL e/o MongoDB centralmente e da un unico punto, visita:https://diversealnines.com/product/clustercontrol.