MongoDB - Panoramica

MongoDB è un database multipiattaforma orientato ai documenti che fornisce alte prestazioni, alta disponibilità e facile scalabilità. MongoDB lavora sul concetto di raccolta e documento.

Banca dati

Il database è un contenitore fisico per le raccolte. Ogni database ottiene il proprio set di file sul file system. Un singolo server MongoDB ha in genere più database.

Collezione

La raccolta è un gruppo di documenti MongoDB. È l'equivalente di una tabella RDBMS. Esiste una raccolta all'interno di un singolo database. Le raccolte non applicano uno schema. I documenti all'interno di una raccolta possono avere campi diversi. In genere, tutti i documenti di una raccolta hanno uno scopo simile o correlato.

Documento

Un documento è un insieme di coppie chiave-valore. I documenti hanno uno schema dinamico. Schema dinamico significa che i documenti nella stessa raccolta non devono avere lo stesso insieme di campi o struttura e i campi comuni nei documenti di una raccolta possono contenere diversi tipi di dati.

La tabella seguente mostra la relazione tra la terminologia RDBMS e MongoDB.

RDBMS MongoDB
Banca dati Banca dati
tavolo Collezione
Tupla / riga Documento
colonna Campo
Table Join Documenti incorporati
Chiave primaria Chiave primaria (chiave predefinita _id fornita da MongoDB stesso)
Server database e client
mysqld / Oracle mongod
mysql / sqlplus mongo

Documento di esempio

L'esempio seguente mostra la struttura del documento di un sito blog, che è semplicemente una coppia di valori chiave separati da virgole.

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'tutorials point',
   url: 'http://www.tutorialspoint.com',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_idè un numero esadecimale di 12 byte che assicura l'unicità di ogni documento. È possibile fornire _id durante l'inserimento del documento. Se non lo fornisci, MongoDB fornisce un ID univoco per ogni documento. Questi 12 byte, i primi 4 byte per il timestamp corrente, i successivi 3 byte per l'ID macchina, i prossimi 2 byte per l'ID processo del server MongoDB e i 3 byte rimanenti sono semplici VALORI incrementali.