back to top

Guida MongoDB

Caratteristiche di MongoDB

Come accennato, NoSQL è un termine generico che racchiude un'ampia categoria di DBMS i quali propongono dei metodi alternativi al modello relazionale per strutturare e organizzare i dati all'interno di un database. MongoDB in particolare è un DBMS NoSQL orientato ai documenti. Al contrario di ciò che avviene nei RDBMS come MySQL, in MongoDB non esiste il concetto di riga...

Installare MongoDB su Windows, macOS e Linux

MongoDB è disponibile in due versioni: Community Edition e Enterprise Edition. In questa lezione vedremo come installare MongoDB Community Edition (la versione gratuita di MongoDB) in Windows 10, macOS Monterey. MongoDB Community Edition non ha nessuna limitazione per i fini di questa guida e presenta tutte le funzionalità base necessarie compresi gli strumenti per implementare Replica Set e Sharding. Come è facile...

MongoDB Atlas: database remoto e gestito

Nella precedente lezione abbiamo visto come installare MongoDB in locale, in questa lezione illustreremo come creare un account, configurare MongoDB Atlas e realizzare il nostro primo semplice progetto sfruttando le risorse messe a disposizione da MongoDB. Cos'è MongoDB Atlas Atlas è un servizio di database completamente gestito realizzato dallo stesso team che sviluppa MongoDB. È disponibile un piano gratuito, ideale per...

Strumenti per importare ed esportare dati in MongoDB

In questa breve lezione vedremo alcuni degli strumenti per esportare ed importare dei dati di un database. Sono quattro i comandi a cui facciamo riferimento che, in base al loro modo di operare e al formato dei file, possiamo classificare in due categorie: mongoimport e mongoexport per lavorare con file JSON. mongodump e mongorestore per i file in formato binario (BSON). Prima...

Mongosh: la nuova shell di MongoDB

mongosh è la nuova shell di MongoDB che sostituisce mongo. Al contrario di quest'ultima, non viene distribuita insieme a mongod, ma deve essere installata separatamente. Nelle precedenti lezioni, abbiamo già visto che su Windows basta eseguire il download e l'installazione del corrispondente pacchetto .msi, mentre su macOS viene automaticamente installata se si usa Homebrew. mongosh è un ambiente di programmazione...

MongoDB: Creare, aggiornare e rimuovere documenti da una collezione

In questa lezione vedremo come creare, aggiornare e rimuovere dei documenti da una collezione. Prima di iniziare questa lezione, è bene evidenziare che per semplicità, per facilitare la lettura degli esempi e visto che la shell di MongoDB lo consente, i campi delle condizioni di filtro e dei documenti delle collezioni non sono racchiusi fra doppi apici. A voler essere...

MongoDB: interrogare i database e recuperare dati specifici

In questa lezione vedremo come usare i metodi db.collection.findOne() e db.collection.find() per estrarre dei documenti in base a criteri di selezione più o meno complessi. Il metodo db.collection.findOne() Il metodo db.collection.findOne(query, projection) restituisce un solo documento della collezione che soddisfa i criteri del documento passato come primo argomento. Possiamo specificare una o più condizioni aggiungendo più coppie campo/valore al documento. Nel...

MongoDB: migliorare le prestazioni delle query grazie agli indici

Questa lezione sarà una breve introduzione agli indici. Dal momento che si tratta di un argomento abbastanza complesso ed importante, in questa guida ci limiteremo ad illustrare solo i concetti fondamentali. Per maggiori dettagli è consigliato consultare la documentazione ufficiale. Cos'è un indice Un indice in MongoDB è una struttura in cui vengono conservate porzioni di dati di una collezione. Per...

MongoDB: indici e query geospaziali

Vediamo cosa sono e come si utilizzano i dati geospaziali in MongoDB. Dati di tipo geospaziali MongoDB offre la possibilità di salvare all'interno di un documento dei dati di tipo geospaziale. In particolare sono due i formati supportati: il formato GeoJSON consente di rappresentare oggetti geometrici come punti, linee spezzate e poligoni. È il formato consigliato per salvare le coordinate geografiche in...

Cos’è il MongoDB “Aggregation Framework”?

Nelle precedenti lezioni abbiamo visto come usare MQL (MongoDB Query Language) per interrogare i database. L'argomento di questa lezione sarà invece l'Aggregation Framework. Faremo spesso riferimento alle collezioni del database di esempio che abbiamo importato in MongoDB Atlas. Se non l'aveste ancora fatto, è consigliato leggere la terza lezione di questa guida in cui spieghiamo come creare un account...

Concetti base per strutturare un database in MongoDB

Nel definire la struttura e le relazioni fra le collezioni che costituiscono un database, è opportuno tenere in considerazione vari fattori. Nei database tradizionali in fase di progettazione di un database e modellazione dei dati si punta a ridurre al minimo le ridondanze attraverso un processo di normalizzazione il quale consiste nello scomporre le tabelle e nel definire dei vincoli...

Autenticazione in MongoDB: gestire utenti, permessi e ruoli

Nelle precedenti lezioni abbiamo visto come eseguire un'istanza di mongod e come collegarci al server locale tramite mongosh. Non abbiamo però dovuto indicare nessun username o password. Il motivo è che MongoDB non presenta alcun utente predefinito e se non si indica esplicitamente non è necessario alcun meccanismo di autenticazione per accedere al server. Per ragioni di sicurezza è però...

Come creare un "Replica Set" in MongoDB

In questa lezione andremo alla scoperta dei "Replica Set" di MongoDB. Cos'è un "Replica Set"? Con il termine "Replica Set" si intende un insieme di istanze di mongod configurate per mantenere lo stessa copia di dati. Tali processi si occupano quindi di replicare le informazioni contenute in un database per garantire un certo livello di resistenza in caso di guasti. Non bisogna...

Sharding: un metodo per partizionare i dati su più macchine

In questa lezione vedremo cos'è e come funziona lo " Sharding". Cos'è lo "Sharding" in MongoDB Col termine "Sharding" ci si riferisce al meccanismo di partizionamento dei dati di una collezione su diverse macchine. Non è un termine esclusivo di MongoDB, ma si tratta di una funzionalità utilizzabile anche in altri sistemi di gestione di database. Ciò che differenzia però MongoDB...