MongoDB è un database NOSQL scalabile e ad alte prestazioni progettato per gestire l’archiviazione orientata ai documenti.
Anche se ai più è poco conosciuto, MongoDB è utilizzato negli stack tecnologici di molte importanti realtà tra cui Google,
Facebook, EA Sports, Adobe, Uber, Cisco, Verizon e molti altri.
MongoDB è disponibile in due diverse edizioni: MongoDB Community Server (gratuita) e MongoDB Enterprise Server
MongoDB fornisce un potente linguaggio di query MQL e offre Aggregation Framework e Map/Reduce per query ancora più complesse.
MongoDB utilizza il formato BSON (Binary JSON) per l’archiviazione, più semplicemente memorizza i dati in documenti simili a
JSON (JavaScript Object Notation).
Esempio di struttura JSON:
{
"_id": 1,
"name" : { "first" : "John", "last" : "Backus" },
"contribs" : [ "Fortran", "ALGOL", "Backus-Naur Form", "FP" ],
"awards" : [
{
"award" : "W.W. McDowell Award",
"year" : 1967,
"by" : "IEEE Computer Society"
}, {
"award" : "Draper Prize",
"year" : 1993,
"by" : "National Academy of Engineering"
}
]
}
I driver supportati ufficialmente e le librerie client sono disponibili per i linguaggi di programmazione più diffusi (Node.JS, Python, C++, Java, C#, Ruby) ma la community offre altri driver che permettono integrazioni alternative.
I vantaggi di MongoDB sono molti: un linquaggio MQL query ricco e potente, è facilmente scalabile, è un eccellente esempio di polimorfismo in quanto non prevede schemi ma sopratutto quello che lascia a bocca aperta è l’estrema velocità nel restituire i dati. Esegue le operazioni prevalentemente in ram anche se è possibile configurare lo swap su disco.
Oltre all’utilizzo via Shell ci sono molte GUI che permottono di operare più facilmente con MongoDB; un esempio sono Studio 3T e MongoDB Compass.
Per riepilogare MongoDB è:
- Facile: lavora con i dati in modo naturale e intuitivo
- Veloce: ottieni grandi prestazioni senza molto lavoro
- Flessibile: adatta e modifica rapidamente
- Versatile: supporta un’ampia varietà di dati e query
Per approfondire: https://www.mongodb.com/