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.