Tutorial su MongoDB: installazione e configurazione

Solitamente si distingue tra diversi tipi di database, come SQL o NoSQL, che si differenziano notevolmente in termini di configurazione e usabilità. Il software open source MongoDB dimostra ad ogni modo che, utilizzando delle soluzioni NoSQL, non è necessario dimenticare tutte le conoscenze accumulate nel corso degli anni lavorando con i database relazionali perché, anche se il database orientato ai documenti consente una memorizzazione flessibile dei dati diversamente da MySQL, i due sistemi presentano delle analogie, di cui potete leggere sul nostro articolo al riguardo. Anche se non si ha familiarità con il linguaggio di interrogazione e la sintassi dei comandi di MongoDB, gli esperti di SQL non riscontrano in genere molte difficoltà passando a questo sistema.

In questo tutorial su MongoDB vi spieghiamo dettagliatamente l’installazione, la configurazione e la gestione di questo sistema di database moderno,utilizzando come esempio Ubuntu.

Primo passaggio: installazione

Nel primo passaggio dovete scaricare e cercare i file di installazione per il vostro sistema. Avete a disposizione per il download l’edizione open source libera “community server“, ma anche le soluzioni commerciali per le aziende sulla pagina ufficiale del sito di MongoDB. Visto che si tratta di un database multipiattaforma, si può scegliere tra diversi sistemi Windows, Linux, OS X e Solaris.

Su Windows basta installare il database nella cartella desiderata, aprendo il file di installazione scaricato. Qualora utilizziate Windows 10 potete scegliere la versione per Windows Server 2008 (64 bit). Per Linux e gli altri sistemi operativi scaricate come al solito un file zip da decomprimere e installare tramite il gestore dei pacchetti. A seconda della distribuzione dovete anche importare la chiave MongoDB Public GPG Key. Per Ubuntu è richiesta questa chiave di autenticazione, che implementate con il comando seguente:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Dopo aggiornate la lista del gestore dei pacchetti:

sudo apt-get update

e installate anche gli utili strumenti di gestione di MongoDB:

sudo apt-get install -y mongodb-org

Secondo passaggio: avvio del server MongoDB

Potete cambiare, se lo volete, la directory standard di installazione /var/lib/mongodb e la cartella di log /var/log/mongodb nel file di configurazione/etc/mongod.conf. Avviate il database con il comando seguente:

sudo service mongod start

Utilizzate al posto del parametro start quello stop per terminare l’esecuzione del database, mentre con restart è possibile riavviarlo. Per verificare se MongoDB sia stato avviato correttamente, basta dare un’occhiata al file di log /log/mongodb/mongod.log:

[initandlisten] waiting for connections on port <port>

La riga vi svela che il server del database è in funzione e che attende di ricevere le connessioni in entrata definite nella porta (<port>) nel file di configurazione. In questo caso utilizziamo la porta standard 27017.

Terzo passaggio: avvio del client

Se il server di MongoDB è in funzione, potete avviare il relativo client. In questo caso utilizziamo la riga di comando del client standard, Mongo shell, che si basa su JavaScript e che può essere utilizzato per l’amministrazione del database, oltre che per l’accesso e l’aggiornamento delle banche dati. Sullo stesso sistema in cui è eseguito MongoDB, avviate il client inserendo questo comando nel terminale:

mongo

La Mongo shell si connette automaticamente con l’istanza attiva di MongoDB sull’host locale e sulla porta 27017. Ovviamente potete adeguare le impostazioni della connessione standard con i parametri correlati. Le opzioni già presentate e altre sono riassunte in questa tabella:

Parametro

Descrizione

--shell

Attiva l’interfaccia shell.

--nodb

Evita la connessione della Mongo shell al database.

--port <port>

Definisce la porta per la connessione.

--host <hostname>

Definisce l’host per la connessione.

--help o -h

Vi mostra le opzioni a disposizione.

--username <username> o -u <username>

Se i permessi utente sono già stati definiti, con il seguente comando vi loggate con il nome utente (<username>) corrispondente.

--password <password> o -p <password>

Se i permessi utente sono già stati definiti, con il seguente comando vi loggate con la password (<password>) corrispondente.

Da notare che le parole presenti tra le parentesi uncinate vanno sostituite con i rispettivi parametri. Ad esempio se volete stabilire al posto della porta standard 27017 quella 40000, il comando da dare è il seguente:

mongo --port 40000

Quarto passaggio: creare un database

Una volta che sono stati attivati MongoDB e il client, potete occuparvi della gestione e dell’elaborazione dei dati. Per prima cosa dovete creare un database, altrimenti le collezioni e i documenti verranno salvati in un database di test generato automaticamente. Create un database con il comando use. Ad esempio se volete creare un database con il nome “miodatabase”, inserite questo comando:

use miodatabase

Inoltre con il comandousescegliete un database MongoDB già esistente, che vorreste utilizzare per l’elaborazione dei dati; con l’istruzione db controllate quale database è selezionato in questo momento.

Quinto passaggio: creare una collezione

Arrivati a questo punto, create la vostra prima collezione per i diversi documenti in formato BSON, in cui verranno poi salvati i dati. La sintassi di base segue lo schema:

db.createCollection(<name>, { options } )

Il comando create possiede due parametri: name (nome della collezione) e options (opzioni facoltative per la configurazione della collezione). Nelle opzioni stabilite, ad esempio, se le dimensioni dei documenti contenuti nella collezione devono essere ridotte (capped: true) o se la limitazione deve riguardare i byte o il numero di documenti (max: <number>) consentiti per collezione. Così è possibile creare una collezione con il nome “lamiacollezione” con un limite di 6.142.800 byte e un massimo consentito di 10.000 documenti con il seguente comando (lo spazio è stato aggiunto solo per garantire una maggiore chiarezza):

db.createCollection ("lamiacollezione", { capped: true,
          size: 6142800,
          max: 10000 } )

Sesto passaggio: inserire i documenti in una collezione

Dopo che è stata creata la collezione, potete inserirvi i documenti, usando uno dei tre metodi disponibili:

  • .insertOne()

  • .insertMany()

  • .insert()

Avete la possibilità di dare il comando per inserire un solo documento (.insertOne), diversi documenti (.insertMany), oltre che uno o più documenti specifici (.insert). Nell’esempio seguente vi mostriamo una voce del database, composta da tre informazioni, cioè nome, età e sesso, inserita come documento nella collezione “lamiacollezione” creata nel quinto passaggio:

db.lamiacollezione.insertOne(
{
    Nome: "Nome",
    Età: 28,
    Sesso: "maschile"
  }
)

MongoDB genera automaticamente per questo e per le altre voci un ID univoco per ciascuna collezione.

Settimo passaggio: gestire i documenti

Nell’ultimo passaggio del nostro tutorial vi spieghiamo come gestire i documenti creati. Prima di poter apportare delle modifiche ai documenti, dovrete aprirli. L’interrogazione avviene con il comando find e può essere specificata con i parametri opzionali query filter (filtri per l’interrogazione) e projection (una specificazione dei risultati mostrati). Per richiamare, ad esempio, il documento generato nel passaggio precedente, bisogna dare il seguente comando:

db.lamiacollezione.find( { Nome: "Nome", Età: 28 } )

Se volete aggiornare questo documento, dovete ricorrere alla funzione update. In questo caso definite il valore da modificare, scegliete un operatore di aggiornamento e inserite il valore modificato. Se volete adeguare il campo “età” dell’esempio, dovete usare l’operatore $set:

db.lamiacollezione.update( 
{ Età: 28 },
{
  $set: { Età: 30 }
}
)

Trovate gli altri operatori di aggiornamento nella documentazione di MongoDB.

Per eliminare i documenti di una collezione, utilizzate il comando remove:

db.lamiacollezione.remove ()

Alla stessa maniera potete eliminare i singoli documenti di una collezione, definendo i criteri come l’ID o il valore esatto, segnalando così a MongoDB quali siano le voci del database da prendere in considerazione. La precisione del processo di rimozione dipende da quanto è specifica la vostra query: se inserite dei valori esatti, verranno eliminati proprio quelli. Il comando

db.lamiacollezione.remove ( { Età: 28 } )

elimina tutte le voci con il valore “28” per il campo “età”. Potete anche stabilire che solo la prima voce a cui è assegnata questa proprietà, debba essere eliminata, inserendo il cosiddetto parametro justOne (1):

db.lamiacollezione.remove ( { Età: 28 }, 1 )

Trovate altre informazioni, ad esempio sull’amministrazione utente, sulle impostazioni di sicurezza, sulla realizzazione della replicazione o sulla distribuzione dei dati su più sistemi, nella documentazione ufficiale su mongodb.com o altri tutorial su tutorialspoint.com.


Abbiamo una proposta per te:
Web hosting a partire da 1 €/mese!

Dominio gratis
Certificato SSL Wildcard incluso
Assistenza clienti 24/7
A partire da 1 €/mese IVA escl. per un anno,
poi 8 €/ mese IVA escl.