MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Informazioni su MongoDB

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.

{ nome artista :"Deep Purple", album:[ { album :"Testa macchina", anno :1972, genere:"Rock" }, { album :"Stormbringer", anno :1974, genere:"Rock" } ] }

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.