Cosa è MongoDB? Archiarchitettura, caratteristiche ed esempio
⚡ Riepilogo intelligente
MongoDB è un database NoSQL orientato ai documenti utilizzato per l'archiviazione di grandi volumi di dati, che utilizza collezioni e documenti anziché tabelle e righe. Questa risorsa spiega MongoDB Caratteristiche, un esempio di documento, componenti chiave dell'architettura, motivi per utilizzarlo, modellazione dei dati e differenze rispetto a un database relazionale.

Cosa è MongoDB?
MongoDB è un database NoSQL orientato ai documenti utilizzato per l'archiviazione di dati ad alto volume. Invece di utilizzare tabelle e righe come nei tradizionali database relazionali, MongoDB si avvale di collezioni e documenti. I documenti sono costituiti da coppie chiave-valore che costituiscono l'unità di dati di base MongoDBLe collezioni contengono insiemi di documenti e funzioni, che sono l'equivalente delle tabelle di un database relazionale. MongoDB è un database venuto alla luce intorno alla metà degli anni 2000.
MongoDB Caratteristiche
- Ogni database contiene collezioni che a loro volta contengono documenti. Ogni documento può essere diverso, con un numero variabile di campi. Le dimensioni e il contenuto di ciascun documento possono essere diversi tra loro.
- La struttura del documento è più in linea con il modo in cui gli sviluppatori costruiscono le loro classi e oggetti nei rispettivi linguaggi di programmazione. Gli sviluppatori spesso dicono che le loro classi non sono righe e colonne ma hanno una struttura chiara con coppie chiave-valore.
- Le righe (o documenti come richiamati in MongoDBNon è necessario definire uno schema in anticipo. I campi possono essere creati al momento.
- Il modello di dati disponibile all'interno MongoDB Consente di rappresentare relazioni gerarchiche, di memorizzare array e di archiviare altre strutture più complesse con maggiore facilità.
- Scalabilità - L' MongoDB Gli ambienti sono altamente scalabili. Aziende di tutto il mondo hanno definito cluster, alcuni dei quali con oltre 100 nodi e milioni di documenti nel database.
MongoDB Esempio
L'esempio seguente mostra come è possibile modellare un documento MongoDB.
- Il campo _id viene aggiunto da MongoDB per identificare in modo univoco il documento nella raccolta.
- Ciò che puoi notare è che i dati dell'ordine (OrderID, prodotto e quantità), che in RDBMS normalmente vengono memorizzati in una tabella separata, vengono effettivamente memorizzati come documento incorporato nella raccolta stessa in MongoDB. Questa è una delle principali differenze nel modo in cui i dati vengono modellati in MongoDB.
Componenti chiave di MongoDB Architectura
Di seguito sono riportati alcuni dei termini comuni utilizzati in MongoDB:
- _ID – Questo è un campo obbligatorio in ogni MongoDB documento. Il campo _id rappresenta un valore univoco nel file MongoDB documento. Il campo _id è come la chiave primaria del documento. Se crei un nuovo documento senza un campo _id, MongoDB creerà automaticamente il campo. Quindi, ad esempio, se consideriamo l'esempio della tabella clienti sopra riportata, MongoDB a ciascun documento della raccolta verrà aggiunto un identificativo univoco di 24 cifre.
| _Id | Identificativo del cliente | Nome del cliente | ID ordine |
|---|---|---|---|
| 563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
| 563479cc7a8a4246bd47d784 | 22 | Trevor Smith | 222 |
| 563479cc9a8a4246bd57d784 | 33 | Nicole | 333 |
- Collezione – Questo è un gruppoping of MongoDB documenti. Una collezione è l'equivalente di una tabella che viene creata in qualsiasi altro RDBMS come Oracle o MS SQL. Una collezione esiste all'interno di un singolo database. Come visto nell'introduzione, le collezioni non impongono alcun tipo di struttura.
- Cursore – Questo è un puntatore al set di risultati di una query. I client possono scorrere un cursore per recuperare i risultati.
- Banca Dati – Questo è un contenitore per collezioni, come in un RDBMS dove è un contenitore per tabelle. Ogni database ottiene il proprio set di file sul file system. MongoDB il server può memorizzare più database.
- funzionalità di – Un record in a MongoDB Una collezione viene fondamentalmente chiamata documento. Il documento, a sua volta, sarà composto da nomi di campi e valori.
- Settore – Una coppia nome-valore in un documento. Un documento può contenere zero o più campi. I campi sono analoghi alle colonne nei database relazionali. Il diagramma seguente mostra un esempio di campi con coppie chiave-valore. Nell'esempio seguente, CustomerID e 11 sono una delle coppie chiave-valore definite nel documento.
- JSON – Questo è noto come JavaCopione Notazione degli oggetti. Si tratta di un formato di testo semplice e leggibile dall'uomo per esprimere dati strutturati. JSON è attualmente supportato in molti linguaggi di programmazione.
Solo una breve nota sulla differenza fondamentale tra il campo _id e un normale campo di raccolta. Il campo _id viene utilizzato per identificare in modo univoco i documenti in una raccolta e viene aggiunto automaticamente da MongoDB quando viene creata la raccolta.
Perché usare MongoDB?
Di seguito sono riportati alcuni dei motivi per cui si dovrebbe iniziare a usare MongoDB:
- Orientato ai documenti - Da quando MongoDB è un NoSQL database di tipo, invece di avere i dati in un formato di tipo relazionale, memorizza i dati in documenti. Questo fa MongoDB Molto flessibile e adattabile alle situazioni e alle esigenze del mondo aziendale reale.
- Richieste ad hoc - MongoDB supporta la ricerca per campo, query di intervallo e ricerche di espressioni regolari. Le query possono essere eseguite per restituire campi specifici all'interno dei documenti.
- Indicizzazione – È possibile creare indici per migliorare le prestazioni delle ricerche all'interno MongoDB. Qualsiasi campo in a MongoDB il documento può essere indicizzato.
- replicazione - MongoDB può fornire un'elevata disponibilità con set di repliche. Un set di repliche è costituito da due o più MongoDB Ogni membro del set di repliche può agire in qualsiasi momento nel ruolo di replica primaria o secondaria. La replica primaria è il server principale che interagisce con il client ed esegue tutte le operazioni di lettura/scrittura. Le repliche secondarie mantengono una copia dei dati della replica primaria utilizzando la replica integrata. Quando una replica primaria si guasta, il set di repliche passa automaticamente alla replica secondaria, che diventa quindi il server primario.
- Bilancio del carico - MongoDB utilizza il concetto di sharding per ridimensionare orizzontalmente suddividendo i dati su più elementi MongoDB le istanze. MongoDB può essere eseguito su più server, bilanciando il carico e/o duplicando i dati per mantenere il sistema attivo e funzionante in caso di guasto hardware.
Modellazione dei dati in MongoDB
Come abbiamo visto dalla sezione introduttiva, i dati in MongoDB ha uno schema flessibile. A differenza di SQL database, dove è necessario dichiarare lo schema di una tabella prima di inserire i dati, MongoDBLe raccolte di non impongono la struttura del documento. Questo tipo di flessibilità è ciò che rende MongoDB così potente.
Quando si modellano i dati in MongoDB, tieni presente quanto segue:
- Quali sono le esigenze dell'applicazione? – Analizza le esigenze aziendali dell'applicazione e individua quali dati e il tipo di dati sono necessari. Sulla base di ciò, assicurati che la struttura del documento sia definita di conseguenza.
- Quali sono i modelli di recupero dei dati? – Se prevedi un utilizzo intensivo delle query, valuta l'impiego di indici nel tuo modello dati per migliorarne l'efficienza.
- Nel database si verificano frequentemente inserimenti, aggiornamenti e rimozioni? Riconsidera l'uso degli indici o incorpora lo sharding se necessario nella progettazione del modello dati per migliorare l'efficienza complessiva MongoDB ambiente.
Differenza fra MongoDB & RDBMS
Di seguito sono riportate alcune delle differenze tra i termini chiave MongoDB e RDBMS:
| RDBMS | MongoDB | Synhydrid |
|---|---|---|
| Table | Collezione | In RDBMS, la tabella contiene le colonne e le righe utilizzate per memorizzare i dati, mentre in MongoDB Questa stessa struttura è nota come collezione. La collezione contiene documenti che a loro volta contengono campi, i quali sono a loro volta coppie chiave-valore. |
| Riga | funzionalità di | In RDBMS, la riga rappresenta un singolo elemento di dati strutturato implicitamente in una tabella. In MongoDB, i dati vengono archiviati nei documenti. |
| Column | Settore | In RDBMS, la colonna denota un insieme di valori di dati. Questi dentro MongoDB sono noti come campi. |
| Entra a far parte | Documenti incorporati | Nei RDBMS, i dati sono talvolta distribuiti su varie tabelle e, per mostrare una visione completa di tutti i dati, a volte viene eseguita un'unione tra le tabelle per ottenere i dati. MongoDB, i dati sono normalmente memorizzati in una singola raccolta, ma separati utilizzando documenti incorporati. Quindi non esiste il concetto di join in MongoDB. |
Oltre alle differenze terminologiche, di seguito vengono illustrate alcune altre differenze:
- I database relazionali sono noti per garantire l'integrità dei dati. Questo non è un requisito esplicito in MongoDB.
- RDBMS richiede che i dati siano normalizzato Innanzitutto, per prevenire record orfani e duplicati. La normalizzazione dei dati richiede quindi più tabelle, che a loro volta comportano più join tra tabelle, richiedendo quindi più chiavi e indici. Man mano che i database crescono, le prestazioni possono iniziare a diventare un problema. Anche in questo caso, non si tratta di un requisito esplicito. MongoDB. MongoDB è flessibile e non necessita che i dati vengano prima normalizzati.


