Introduzione a MongoDB e l'ecosistema di installazione
Benvenuti nella seconda lezione del nostro corso "Impara MongoDB in 40 lezioni". Dopo aver compreso i concetti teorici di cosa sia un database NoSQL e perché il modello a documenti sia così potente per le applicazioni web moderne, è arrivato il momento di sporcarsi le mani.
MongoDB non è un semplice database; è un ecosistema. Quando parliamo di "installare MongoDB", ci riferiamo principalmente a due componenti fondamentali che ogni sviluppatore deve avere nella propria workstation:
- MongoDB Community Server: Il motore del database vero e proprio. È il processo che gira in background (il demone
mongod), gestisce l'archiviazione dei dati su disco, l'indicizzazione e l'esecuzione delle query. - MongoDB Compass: L'interfaccia grafica (GUI) ufficiale. Sebbene MongoDB possa essere gestito interamente da riga di comando, Compass permette di visualizzare i dati, analizzare le performance delle query e gestire gli indici in modo visivo, accelerando drasticamente il ciclo di sviluppo.
In questa guida vedremo come configurare entrambi gli strumenti, analizzando le differenze tra l'installazione locale e l'utilizzo del cloud tramite MongoDB Atlas, per capire quale approccio scegliere a seconda delle necessità del progetto.
Installazione di MongoDB Community Server
L'installazione di MongoDB varia leggermente a seconda del sistema operativo, ma il principio rimane lo stesso: dobbiamo installare il server e assicurarci che sia in grado di scrivere i dati in una directory specifica.
Installazione su Windows
Per Windows, il metodo più semplice è l'utilizzo dell'installer .msi.
- Scaricate l'installer dal sito ufficiale di MongoDB selezionando la versione "Community Server".
- Durante l'installazione, assicuratevi di selezionare l'opzione "Install MongoDB as a Service". Questo è fondamentale perché permette al database di avviarsi automaticamente all'avvio del computer, evitando di dover lanciare manualmente il processo ogni volta che aprite l'IDE.
- Scegliete l'opzione per installare MongoDB Compass (se non lo avete già fatto separatamente).
Installazione su macOS
Su macOS, il metodo standard è l'utilizzo di Homebrew. Questo non solo semplifica l'installazione, ma rende gli aggiornamenti molto più gestibili.
# Installare le tap ufficiali di MongoDB
brew tap mongodb/brew
# Installare MongoDB Community Server
brew install mongodb-community@7.0
# Avviare MongoDB come servizio di background
brew services start mongodb-community@7.0
Dopo l'esecuzione di questi comandi, MongoDB sarà attivo. Potete verificare lo stato del servizio con brew services list. L'uso di Homebrew è caldamente consigliato perché gestisce correttamente le variabili d'ambiente e i permessi delle cartelle di data.
Installazione su Linux (Ubuntu/Debian)
Su Linux, l'installazione richiede l'importazione della chiave pubblica GPG per garantire l'autenticità dei pacchetti.
# Importare la chiave pubblica
sudo apt-get install gnupg curl
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg
--dearmor
# Creare il file di lista per il repository
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
# Aggiornare e installare
sudo apt-get update
sudo apt-get install -y mongodb-org
# Avviare il servizio
sudo systemctl start mongod
# Abilitare l'avvio automatico
sudo systemctl enable mongod
Configurazione e Verifica del Server
Una volta completata l'installazione, è fondamentale verificare che il server sia effettivamente in ascolto. Per impostazione predefinita, MongoDB ascolta sulla porta 27017 dell'indirizzo di loopback 127.0.0.1.
Il concetto di Connection String
Per connettersi a MongoDB, si utilizza una stringa di connessione (URI). La forma base per un'installazione locale è:
mongodb://localhost:27017
Questa stringa dice al client: "Connettiti utilizzando il protocollo MongoDB, all'host locale, sulla porta 27017". Se in futuro sposteremo il database su un server remoto, cambieremo semplicemente localhost con l'indirizzo IP o il dominio del server.
Verifica tramite Mongosh
MongoDB fornisce un shell interattivo chiamato mongosh (MongoDB Shell). È lo strumento principale per l'amministrazione rapida.
// Avviare mongosh dal terminale
// Digitare: mongosh
// Una volta dentro, verifichiamo la versione e lo stato
db.version();
// Visualizziamo i database esistenti
show dbs;
Se dopo aver digitato mongosh ricevete un errore di connessione, significa che il servizio mongod (il server) non è attivo. Su Windows, controllate i "Servizi di sistema"; su Linux/macOS, usate systemctl o brew services.
Installazione e Utilizzo di MongoDB Compass
Se mongosh è il "motore a vista", MongoDB Compass è la "cabina di pilotaggio".
Perché usare Compass?
Per uno sviluppatore intermediate, Compass non è solo un modo per evitare di scrivere query a mano, ma uno strumento di analisi. Le funzionalità chiave includono:
- Visualizzazione dei Documenti: Permette di vedere i dati in formato JSON o in formato tabellare.
- Aggregation Pipeline Builder: Questa è la funzione più potente. Permette di costruire query di aggregazione complesse (filtri, group by, lookups) passo dopo passo, vedendo il risultato di ogni stadio della pipeline in tempo reale.
- Analisi degli Indici: Compass segnala se una query è lenta e suggerisce quali indici creare per ottimizzare le performance.
Configurazione della prima connessione
- Aprite MongoDB Compass.
- Nella schermata "New Connection", troverete il campo URI. Se state usando l'installazione locale, troverete già precompilato
mongodb://localhost:27017. - Cliccate su "Connect".
Se la connessione fallisce, verificate che il firewall non stia bloccando la porta 27017 e che il server sia attivo.
Esempi Pratici: Casi d'uso reali
Per rendere questa installazione concreta, vediamo come potremmo strutturare l'ambiente per due scenari comuni.
Scenario A: Sviluppo Locale Rapido
Immaginiamo di voler creare un prototipo di un e-commerce. Installiamo MongoDB localmente come descritto sopra. Usiamo Compass per creare manualmente un database chiamato shop_db e una collezione products.
In questo caso, la velocità di iterazione è massima perché non c'è latenza di rete tra l'applicazione Node.js (che girerà sulla stessa macchina) e il database.
Scenario B: Ambiente di Staging con MongoDB Atlas
Se il progetto cresce, non possiamo più affidarci a un'installazione locale. Qui entra in gioco MongoDB Atlas, la versione cloud (DBaaS - Database as a Service).
Anche se abbiamo installato MongoDB localmente, Compass è essenziale qui. In Atlas, otterrete una stringa di connessione simile a:
mongodb+srv://username:password@cluster0.mongodb.net/myFirstDatabase
Copiando questa stringa in MongoDB Compass, potrete gestire il database remoto esattamente come se fosse locale, rendendo la transizione tra sviluppo e produzione quasi invisibile.
Errori comuni e Troubleshooting
Durante l'installazione di MongoDB, è facile incontrare alcuni ostacoli. Ecco i più frequenti:
1. "Data directory not found"
Soprattutto su versioni vecchie o installazioni manuali su Linux, MongoDB potrebbe fallire l'avvio perché non trova la cartella /data/db.
Soluzione: MongoDB 7.0 gestisce meglio i percorsi, ma se accade, create la cartella manualmente con sudo mkdir -p /data/db e assegnate i permessi all'utente mongodb.
2. Conflitti di Porta (Port 27017 already in use)
Se avete installato MongoDB più volte o se un altro processo occupa la porta 27017, il server non partirà.
Soluzione: Usate netstat -ano | findstr :27017 (Windows) o sudo lsof -i :27017 (Linux/macOS) per trovare il PID del processo e killarlo, oppure cambiate la porta nel file di configurazione mongod.conf.
3. MongoDB Compass non si connette a Atlas
Molto spesso è un problema di whitelist IP. Soluzione: MongoDB Atlas blocca tutte le connessioni per sicurezza. Dovete andare nel pannello di controllo di Atlas -> Network Access -> Add IP Address e aggiungere il vostro indirizzo IP attuale.
Prossimi passi
Ora che avete MongoDB Community Server attivo e MongoDB Compass configurato, avete l'ambiente di lavoro pronto. Tuttavia, l'installazione è solo l'inizio.
Per proseguire nel percorso di apprendimento, vi suggerisco di focalizzarvi su questi punti nella prossima lezione:
- Operazioni CRUD di base: Imparate a inserire (
insertOne), leggere (find), aggiornare (updateOne) e cancellare (deleteOne) i documenti direttamente damongoshe Compass. - Schema Design: Riflettete su come modellare i dati. A differenza di SQL, in MongoDB decidete se "incorporare" i dati (Embedding) o "riferirli" (Referencing).
- Integrazione con Node.js: Provate a installare il driver ufficiale
mongodbo l'ODMmongooseper connettere la vostra applicazione web al database appena installato.
L'obiettivo è passare dalla gestione visiva (Compass) a quella programmatica, automatizzando l'interazione con i dati attraverso il codice.