MongoDB è un sistema di gestione di database (DBMS) open source che utilizza un modello di dati orientato ai documenti. È considerato un database NoSQL, in quanto non utilizza il modello relazionale e quindi non utilizza SQL come linguaggio di query.
Il modello orientato ai documenti consente a MongoDB di archiviare dati semistrutturati che non richiedono uno schema fisso. Può raggiungere questo obiettivo attraverso l'uso di documenti JSON.
MongoDB è utilizzato da alcune delle più grandi aziende del mondo, tra cui Facebook, Google, Nokia, MTV Networks, Cisco, Forbes e molte altre.
MongoDB è anche un DBMS multipiattaforma, che attualmente supporta Windows, Mac, Solaris e varie distribuzioni Linux al momento della scrittura.
Un database MongoDB è diverso da un database relazionale in quanto MongoDB utilizza un modello orientato ai documenti per archiviare i dati. Nel modello orientato ai documenti, i dati vengono archiviati all'interno dei documenti di una raccolta. Nel modello relazionale, i dati vengono archiviati all'interno di righe di una tabella.
Le Collezioni
In MongoDB, una raccolta è un gruppo di documenti. Una raccolta in genere contiene documenti che hanno un argomento simile (come Utenti, Prodotti, Post e così via).
Le raccolte sono quindi, per molti versi, simili alle tabelle del modello relazionale.
I documenti
In MongoDB, i documenti vengono archiviati come JSON documenti. JSON (JavaScript Object Notation) è uno standard che facilita lo scambio di dati. I documenti JSON sono simili ai documenti XML in quanto i dati possono essere presentati in modo gerarchico e possono essere letti da esseri umani e computer allo stesso modo.
Ecco un esempio di un documento JSON. Ecco come appaiono i documenti all'interno di un database MongoDB.
Il _id
campo è l'identificatore univoco per un documento. MongoDB consente di recuperare/fare riferimento a ciascun documento utilizzando questo campo. Puoi fornirlo o lasciare che MongoDB lo generi.
Utilizzando JSON, i risultati delle query possono essere facilmente analizzati, con poca o nessuna trasformazione, direttamente da JavaScript e dai linguaggi di programmazione più diffusi. Questo perché i documenti JSON utilizzano le convenzioni nome/coppia e array familiari ai linguaggi di programmazione più diffusi come C, C++, C#, Java, JavaScript, Perl, Python e molti altri. Ciò riduce la quantità di logica aziendale che deve essere integrata nelle applicazioni che utilizzano MongoDB.
Dietro le quinte, MongoDB archivia effettivamente i documenti JSON in un formato con codifica binaria chiamato BSON. BSON estende JSON supportando tipi di dati aggiuntivi e per essere efficiente per la codifica e la decodifica all'interno di linguaggi diversi.
Senza schema
Ogni documento JSON in una raccolta può contenere la propria struttura. Pertanto, non esiste uno schema fisso che limiti il tipo di dati che possono essere inseriti in un database MongoDB.
Ciò è in contrasto con un database relazionale in cui è necessario creare prima lo schema (ovvero definire le tabelle, le colonne, i tipi di dati, ecc.), Prima di inserire qualsiasi dato. Se i dati non aderiscono allo schema, non vengono inseriti nel database.
In un database MongoDB, non esiste una regola per dire quali campi o quanti campi dovrebbe avere ogni documento. Ad esempio, un documento di una raccolta potrebbe contenere nome, indirizzo e numero di telefono, mentre un altro documento potrebbe contenere nome e indirizzo e-mail.