So­li­ta­men­te si distingue tra diversi tipi di database, come SQL o NoSQL, che si dif­fe­ren­zia­no no­te­vol­men­te in termini di con­fi­gu­ra­zio­ne e usabilità. Il software open source MongoDB dimostra ad ogni modo che, uti­liz­zan­do delle soluzioni NoSQL, non è ne­ces­sa­rio di­men­ti­ca­re tutte le co­no­scen­ze ac­cu­mu­la­te nel corso degli anni lavorando con i database re­la­zio­na­li perché, anche se il database orientato ai documenti consente una me­mo­riz­za­zio­ne fles­si­bi­le dei dati di­ver­sa­men­te da MySQL, i due sistemi pre­sen­ta­no delle analogie, di cui potete leggere sul nostro articolo al riguardo. Anche se non si ha fa­mi­lia­ri­tà con il lin­guag­gio di in­ter­ro­ga­zio­ne e la sintassi dei comandi di MongoDB, gli esperti di SQL non ri­scon­tra­no in genere molte dif­fi­col­tà passando a questo sistema.

In questo tutorial su MongoDB vi spie­ghia­mo det­ta­glia­ta­men­te l’in­stal­la­zio­ne, la con­fi­gu­ra­zio­ne e la gestione di questo sistema di database moderno, uti­liz­zan­do come esempio Ubuntu.

Primo passaggio: in­stal­la­zio­ne

Nel primo passaggio dovete scaricare e cercare i file di in­stal­la­zio­ne per il vostro sistema. Avete a di­spo­si­zio­ne per il download l’edizione open source libera “community server“, ma anche le soluzioni com­mer­cia­li per le aziende sulla pagina ufficiale del sito di MongoDB. Visto che si tratta di un database mul­ti­piat­ta­for­ma, si può scegliere tra diversi sistemi Windows, Linux, OS X e Solaris. Su Windows basta in­stal­la­re il database nella cartella de­si­de­ra­ta, aprendo il file di in­stal­la­zio­ne scaricato. Qualora uti­liz­zia­te 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 de­com­pri­me­re e in­stal­la­re tramite il gestore dei pacchetti. A seconda della di­stri­bu­zio­ne dovete anche importare la chiave MongoDB Public GPG Key. Per Ubuntu è richiesta questa chiave di au­ten­ti­ca­zio­ne, che im­ple­men­ta­te con il comando seguente:

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

Dopo ag­gior­na­te la lista del gestore dei pacchetti:

sudo apt-get update

e in­stal­la­te 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 in­stal­la­zio­ne /var/lib/mongodb e la cartella di log /var/log/mongodb nel file di con­fi­gu­ra­zio­ne /etc/mongod.conf. Avviate il database con il comando seguente:

sudo service mongod start

Uti­liz­za­te al posto del parametro start quello stop per terminare l’ese­cu­zio­ne del database, mentre con restart è possibile riav­viar­lo. Per ve­ri­fi­ca­re se MongoDB sia stato avviato cor­ret­ta­men­te, 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 con­nes­sio­ni in entrata definite nella porta (<port>) nel file di con­fi­gu­ra­zio­ne. In questo caso uti­liz­zia­mo la porta standard 27017.

Terzo passaggio: avvio del client

Se il server di MongoDB è in funzione, potete avviare il relativo client. In questo caso uti­liz­zia­mo la riga di comando del client standard, Mongo shell, che si basa su Ja­va­Script e che può essere uti­liz­za­to per l’am­mi­ni­stra­zio­ne del database, oltre che per l’accesso e l’ag­gior­na­men­to delle banche dati. Sullo stesso sistema in cui è eseguito MongoDB, avviate il client inserendo questo comando nel terminale:

mongo

La Mongo shell si connette au­to­ma­ti­ca­men­te con l’istanza attiva di MongoDB sull’host locale e sulla porta 27017. Ov­via­men­te potete adeguare le im­po­sta­zio­ni della con­nes­sio­ne standard con i parametri correlati. Le opzioni già pre­sen­ta­te e altre sono riassunte in questa tabella:

Parametro De­scri­zio­ne
--shell Attiva l’in­ter­fac­cia shell.
--nodb Evita la con­nes­sio­ne della Mongo shell al database.
--port <port> Definisce la porta per la con­nes­sio­ne.
--host <hostname> Definisce l’host per la con­nes­sio­ne.
--help o -h Vi mostra le opzioni a di­spo­si­zio­ne.
--username <username> o -u <username> Se i permessi utente sono già stati definiti, con il seguente comando vi loggate con il nome utente (<username>) cor­ri­spon­den­te.
--password <password> o -p <password> Se i permessi utente sono già stati definiti, con il seguente comando vi loggate con la password (<password>) cor­ri­spon­den­te.

Da notare che le parole presenti tra le parentesi uncinate vanno so­sti­tui­te con i ri­spet­ti­vi parametri. Ad esempio se volete stabilire al posto della porta standard 27017 quella 40000, il comando da dare è il seguente:

mongo --port 40000
Consiglio: MongoDB gestito da IONOS

Con Managed MongoDB from IONOS enables you to con­cen­tra­te on the es­sen­tials. From in­stal­la­tion to operation and main­te­nan­ce work, IONOS makes sure you always get the best per­for­man­ce from your data banks.

Quarto passaggio: creare un database

Una volta che sono stati attivati MongoDB e il client, potete occuparvi della gestione e dell’ela­bo­ra­zio­ne dei dati. Per prima cosa dovete creare un database, al­tri­men­ti le col­le­zio­ni e i documenti verranno salvati in un database di test generato au­to­ma­ti­ca­men­te. Create un database con il comando use. Ad esempio se volete creare un database con il nome “mio­da­ta­ba­se”, inserite questo comando:

use miodatabase

Inoltre con il comando use scegliete un database MongoDB già esistente, che vorreste uti­liz­za­re per l’ela­bo­ra­zio­ne dei dati; con l’istru­zio­ne db con­trol­la­te quale database è se­le­zio­na­to in questo momento.

Quinto passaggio: creare una col­le­zio­ne

Arrivati a questo punto, create la vostra prima col­le­zio­ne 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 col­le­zio­ne) e options (opzioni fa­col­ta­ti­ve per la con­fi­gu­ra­zio­ne della col­le­zio­ne). Nelle opzioni stabilite, ad esempio, se le di­men­sio­ni dei documenti contenuti nella col­le­zio­ne devono essere ridotte (capped: true) o se la li­mi­ta­zio­ne deve ri­guar­da­re i byte o il numero di documenti (max: <number>) con­sen­ti­ti per col­le­zio­ne. Così è possibile creare una col­le­zio­ne con il nome “la­mia­col­le­zio­ne” con un limite di 6.142.800 byte e un massimo con­sen­ti­to 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 col­le­zio­ne

Dopo che è stata creata la col­le­zio­ne, potete inserirvi i documenti, usando uno dei tre metodi di­spo­ni­bi­li:

  • .insertOne()

  • .in­sert­Ma­ny()

  • .insert()

Avete la pos­si­bi­li­tà di dare il comando per inserire un solo documento (.insertOne), diversi documenti (.in­sert­Ma­ny), oltre che uno o più documenti specifici (.insert). Nell’esempio seguente vi mostriamo una voce del database, composta da tre in­for­ma­zio­ni, cioè nome, età e sesso, inserita come documento nella col­le­zio­ne “la­mia­col­le­zio­ne” creata nel quinto passaggio:

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

MongoDB genera au­to­ma­ti­ca­men­te per questo e per le altre voci un ID univoco per ciascuna col­le­zio­ne.

Settimo passaggio: gestire i documenti

Nell’ultimo passaggio del nostro tutorial vi spie­ghia­mo come gestire i documenti creati. Prima di poter apportare delle modifiche ai documenti, dovrete aprirli. L’in­ter­ro­ga­zio­ne avviene con il comando find e può essere spe­ci­fi­ca­ta con i parametri opzionali query filter (filtri per l’in­ter­ro­ga­zio­ne) e pro­jec­tion (una spe­ci­fi­ca­zio­ne dei risultati mostrati). Per ri­chia­ma­re, ad esempio, il documento generato nel passaggio pre­ce­den­te, bisogna dare il seguente comando:

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

Se volete ag­gior­na­re questo documento, dovete ricorrere alla funzione update. In questo caso definite il valore da mo­di­fi­ca­re, scegliete un operatore di ag­gior­na­men­to e inserite il valore mo­di­fi­ca­to. 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 ag­gior­na­men­to nella do­cu­men­ta­zio­ne di MongoDB.

Per eliminare i documenti di una col­le­zio­ne, uti­liz­za­te il comando remove:

db.lamiacollezione.remove ()

Alla stessa maniera potete eliminare i singoli documenti di una col­le­zio­ne, definendo i criteri come l’ID o il valore esatto, se­gna­lan­do così a MongoDB quali siano le voci del database da prendere in con­si­de­ra­zio­ne. La pre­ci­sio­ne 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 co­sid­det­to parametro justOne (1):

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

Trovate altre in­for­ma­zio­ni, ad esempio sull’am­mi­ni­stra­zio­ne utente, sulle im­po­sta­zio­ni di sicurezza, sulla rea­liz­za­zio­ne della re­pli­ca­zio­ne o sulla di­stri­bu­zio­ne dei dati su più sistemi, nella do­cu­men­ta­zio­ne ufficiale su mongodb.com o altri tutorial su tu­to­rial­spoint.com.

Vai al menu prin­ci­pa­le