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.

  • 📄 Modello di documento: I dati vengono memorizzati come documenti chiave-valore all'interno di collezioni, non di tabelle.
  • 🧩 Schema flessibile: I campi vengono creati al volo, senza una struttura predefinita.
  • ???? ️ Componenti principali: _id, collezione, documento, campo, cursore, database e JSON.
  • ⚙️ Perché usarlo: Query ad hoc, indicizzazione, replica e sharding per la scalabilità.
  • 🔄 Rispetto ai RDBMS: Le collezioni sostituiscono le tabelle e i documenti incorporati sostituiscono le join.

Cosa è MongoDB

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

  1. 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.
  2. 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.
  3. Le righe (o documenti come richiamati in MongoDBNon è necessario definire uno schema in anticipo. I campi possono essere creati al momento.
  4. 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à.
  5. 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.

  1. Il campo _id viene aggiunto da MongoDB per identificare in modo univoco il documento nella raccolta.
  2. 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.

MongoDB Esempio

Componenti chiave di MongoDB Architectura

Di seguito sono riportati alcuni dei termini comuni utilizzati in MongoDB:

  1. _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
  1. 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.
  2. Cursore – Questo è un puntatore al set di risultati di una query. I client possono scorrere un cursore per recuperare i risultati.
  3. 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.
  4. 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.
  5. 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.

Componenti chiave di MongoDB Architectura

  1. 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:

  1. 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.
  2. 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.
  3. Indicizzazione – È possibile creare indici per migliorare le prestazioni delle ricerche all'interno MongoDB. Qualsiasi campo in a MongoDB il documento può essere indicizzato.
  4. 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.
  5. 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:

  1. 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.
  2. 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.
  3. 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:

  1. I database relazionali sono noti per garantire l'integrità dei dati. Questo non è un requisito esplicito in MongoDB.
  2. 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.

DOMANDE FREQUENTI

MongoDB Atlas memorizza grandi volumi di dati non strutturati e semi-strutturati, risultando utile per le pipeline di intelligenza artificiale e apprendimento automatico. I suoi documenti flessibili contengono dati di addestramento, set di caratteristiche e metadati del modello, e Atlas aggiunge la ricerca vettoriale per le applicazioni di intelligenza artificiale.

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. MongoDB Atlas Vector Search consente di archiviare e interrogare le rappresentazioni vettoriali insieme ai documenti. Ciò supporta la ricerca semantica, i suggerimenti e la generazione di contenuti arricchiti per applicazioni di intelligenza artificiale senza la necessità di un database vettoriale separato.

MongoDB Community Edition è gratuita e open source. MongoDB Offre inoltre Atlas, un servizio cloud gestito con un piano gratuito e un'edizione Enterprise a pagamento con funzionalità avanzate di sicurezza e supporto.

Molte grandi organizzazioni utilizzano MongoDB Ideale per l'archiviazione flessibile di grandi volumi di dati, in particolare per aziende di e-commerce, gaming, IoT e gestione dei contenuti. La sua scalabilità tramite sharding e replica si adatta ad applicazioni con milioni di documenti.

Riassumi questo post con: