Panoramica di MongoDB
Distribuisci le applicazioni più popolari sui nostri server cloud ad alte prestazioni con un solo clic.
MongoDB è un DBMS orientato ai documenti. I dati in MongoDB sono memorizzati in documenti, raggruppati in collection. Ogni documento è una struttura simile a JSON. Facendo un'analogia con i DBMS relazionali, si può dire che le collection corrispondono alle tabelle e i documenti alle righe di quelle tabelle. La dimensione massima di un documento in MongoDB 2.x è di 16 MB (nelle versioni precedenti era di soli 4 MB).

A differenza degli RDBMS, MongoDB non richiede alcuna descrizione dello schema del database — può cambiare gradualmente con l'evolversi dell'applicazione, il che risulta molto comodo.
Sono supportati gli indici, inclusi quelli su array e documenti annidati, nonché gli indici geospaziali. Sono supportati anche gli indici univoci e composti.
MongoDB dispone inoltre di operazioni atomiche, compare-and-swap, cursori, scrittura senza conferma e persino MapReduce.
La dimensione di una collection in MongoDB può essere limitata in base al numero di documenti o in megabyte. Se una collection diventa troppo grande, i documenti più vecchi vengono eliminati automaticamente. Questa funzionalità può tornare utile se si desidera archiviare dati temporanei in MongoDB.
L'interfaccia di MongoDB ricorda molto DBIx::Class — si ottiene un ORM «out of the box». Nelle query è possibile utilizzare funzioni JavaScript.
MongoDB supporta il journaling e la replica asincrona in due varianti: la replica master-slave e i replica set. Gli sviluppatori di MongoDB raccomandano di utilizzare questi ultimi. Un replica set funziona come un master-slave, ma in caso di guasto del master viene automaticamente eletto un nuovo master tra le repliche. Dopo il ripristino, l'ex master diventa una replica.
La caratteristica forse più significativa di MongoDB è la possibilità di segmentare automaticamente i documenti su più replica set. La segmentazione avviene per intervallo; per assegnare un documento a un intervallo specifico si utilizza una chiave di segmentazione (shard key). I dati vengono distribuiti tra i replica set in modo che ciascuno contenga all'incirca la stessa quantità di dati. Se il cluster diventa sovraccarico, è sufficiente aggiungere un nuovo replica set — la ridistribuzione dei dati avverrà automaticamente.
Nei documenti MongoDB è possibile archiviare dati binari — immagini, file MP3 e così via. Tuttavia, per dati di dimensioni superiori a 1 MB, si consiglia di utilizzare GridFS. GridFS è una convenzione per l'archiviazione di file di dimensioni arbitrarie in MongoDB, supportata da tutti i driver ufficiali.