Il primo passo nell'uso di MongoDB è capire i concetti di base di MongoDB e il modello di dati (struttura dei dati), conoscendo come i dati sono archiviati. Infatti, MongoDB è molto simile a MySQL, quindi chiunque conosca MySQL non avrà alcuna difficoltà nell'apprendere MongoDB.
Concetti di base di MongoDB
Database
Il database di MongoDB è lo stesso del database di MySQL.
Collezione
Una collezione MongoDB si riferisce a una raccolta di dati dei documenti, simile al concetto di tabella in MySQL.
Documento
Un documento MongoDB, simile a una riga di dati in una tabella MySQL, è una struttura dati in formato JSON composta da più campi, rendendo la struttura del documento in MongoDB molto flessibile.
Campo
Un campo di un documento MongoDB è simile al concetto di campo in una tabella MySQL, rappresentando i dati specifici da memorizzare, con ciascun campo che ha il proprio tipo di dato.
Indice
L'indice di MongoDB è simile all'indice di MySQL, con lo scopo di migliorare l'efficienza delle query.
Aggregazione
Il concetto di aggregazione di MongoDB è simile all'analisi dell'aggregazione Group by/Count/Sum in MySQL, utilizzata per l'analisi statistica dei dati.
Confronto dei concetti tra MongoDB e MySQL
MySQL | MongoDB |
---|---|
Database | Database |
Tabella | Collezione |
Riga | Documento |
Colonna | Campo del documento |
Indice | Indice |
Aggregazione (ad esempio, group by) | Aggregazione |
Fondamentalmente, i concetti di MongoDB possono essere abbinati a quelli di MySQL, quindi MongoDB è il database non relazionale più simile ai database relazionali (NoSQL).
Dati del Documento in MongoDB
Un documento è semplicemente una struttura JSON composta da più campi, ciascuno con il proprio tipo di dato. Nello sviluppo con MongoDB, l'attenzione è principalmente su come progettare la struttura del documento, simile a come il cuore dell'uso di MySQL coinvolge la progettazione delle strutture di tabella.
Esempio di dati del documento in MongoDB:
{
"_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
"lastname": "Wu",
"address": {
"street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA",
"zip": "90404"
},
"hobbies": ["surfing", "coding"]
}
Può essere qualsiasi struttura JSON arbitrariamente nidificata, qualcosa che le strutture di tabella di MySQL non possono raggiungere. Il campo _id
funge da chiave primaria del documento e se non si specifica un valore specifico, MongoDB genererà un valore univoco in modo casuale.
La differenza più grande tra la struttura dei dati di MongoDB e le tabelle di MySQL è che MongoDB non richiede la predefinizione della struttura del documento. Con MongoDB, è possibile inserire direttamente dati JSON in una collezione senza la necessità di uno schema predefinito. Ogni volta che si scrive dati JSON in una collezione MongoDB, il formato può essere diverso, consentendo l'aggiunta o la rimozione dei campi a piacimento.
Nota: Anche se la struttura del documento di MongoDB è abbastanza flessibile e può ospitare formati di dati variabili per ogni voce, nelle applicazioni pratiche la struttura dei dati all'interno di una collezione è di solito uniforme. Altrimenti, se il formato di ciascuna voce è diverso all'interno della collezione, mantenerla diventerà un incubo poiché non si conoscerà il formato dei dati recuperati ogni volta.