back to top

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 imparare ed esplorare le funzionalità di MongoDB. Atlas permette di focalizzare l’attenzione solo sullo sviluppo delle nostre applicazioni dal momento che si occupa di tutte le operazioni di configurazione ed amministrazione. Come vedremo, basteranno davvero pochi passaggi per avviare un Replica Set, ovvero un gruppo di server che mantengono la stessa copia dei dati in modo da garantire alta disponibilità e tolleranza contro possibili guasti.

Atlas fornisce una serie di strumenti attraverso i quali possiamo per esempio gestire gli utenti di un database e i permessi a loro associati.

Attraverso un’interfaccia grafica abbastanza intuitiva possiamo interrogare il database, creare o consultare eventuali indici e visualizzare varie fasi del processo di elaborazione dei documenti tramite Aggregation Framework (sarà uno degli argomenti delle prossime lezioni).

A seconda del piano scelto, vengono anche forniti strumenti di analisi dettagliata che permettono di risolvere eventuali problemi prestazionali del database. Infatti, Atlas analizzerà le query e suggerirà possibili soluzioni per ottimizzare i database.

Come creare un nuovo progetto su MongoDb Atlas

Possiamo creare un account collegandoci alla pagina iniziale del sito ufficiale e cliccando sul pulsante Try Free.

Pagina iniziale di MongoDB Atlas

Per creare un nuovo account, riempiamo i campi necessari e seguiamo i passaggi richiesti. Come e-mail possiamo tranquillamente usare un indirizzo di posta personale.

Modulo per creare un account per MongoDB Atlas

Una volta effettuato l’accesso, sarà necessario fornire un nome per una nuova organizzazione. Come indicato sul sito, si tratta di un modo per organizzare e gestire meglio i vari progetti che creeremo.

Creare nuova organizzazione su MongoDB Atlas

Nella schermata successiva inseriamo l’identificativo dell’organizzazione e assicuriamoci di selezionare MongoDB Atlas come servizio. Infine premiamo il tasto ‘Next‘.

modulo per la creazione di una nuova organizzazione su mongodb atlas

Possiamo anche aggiungere nuovi membri all’organizzazione, ma trascuriamo questa funzione e limitiamoci a cliccare sul pulsante ‘Create Organization‘.

selezionare utenti e permessi di una nuova organizzazione

Ci apparirà poi la pagina dei progetti in cui premiamo il pulsante ‘New Project‘ per creare un nuovo progetto.

Schermata iniziale dei progetti in MongoDB Atlas

Inseriamo un nome per il nostro progetto e premiamo ‘Next‘.

Creare un nuovo progetto in MongoDB Atlas

Trascuriamo anche i membri e i permessi per il nuovo progetto e limitiamoci a premere il pulsante ‘Create Project‘.

Selezione membri e permessi di un progetto

Abbiamo così completato la procedura per la realizzazione di un nuovo progetto, a questo punto possiamo selezionare server e specifiche per avviare un cluster di tre server configurati come Replica Set. Per questo motivo clicchiamo su ‘Build a Database‘.

creare un nuovo cluster in Atlas

Nella pagina successiva dovremo scegliere il piano gratuito che ha delle limitazioni ma è ideale per chi vuole apprendere ed esplorare le funzioni di MongoDB.

Selezione piano gratuito atlas

Assicuriamoci ancora una volta di aver scelto il piano gratuito.

Configurazione Cluster Atlas - passo 1

Selezioniamo AWS come fornitore dei servizi e come server farm indichiamo quella a noi più vicina e gratuita che dovrebbe essere Francoforte.

Configurazione Cluster Atlas - passo 2

Scorrendo la pagina possiamo visualizzare maggiori dettagli del piano gratuito che garantisce 512MB di spazio di archiviazione con VCPU (CPU virtuale) e RAM condivise.

Configurazione Cluster Atlas - passo 3

Prima di procedere, possiamo scegliere un nome per il Cluster e dopo aver verificato ancora una volta che si tratta del piano gratuito, premiamo il pulsante ‘Create Cluster‘.

Configurazione Cluster Atlas - passo 4

Configurazione per accedere al database remoto

Sarà necessario un po’ di tempo prima che venga completato l’avvio del cluster. Nel frattempo iniziamo a selezionare le opzioni di sicurezza che useremo per accedere a MongoDB Atlas via linea di comando o tramite MongoDB Compass.

MongoDB Atlas security quickstart

Nella schermata generale di gestione del cluster selezioniamo Security > Quickstart.

Come metodo di autenticazione scegliamo Username and Password ed inseriamo i dettagli dell’utente e la relativa password. Infine clicchiamo su ‘Create User‘. Trascuriamo le altre opzioni che andremo poi a modificare nella sezione Network Access.

Autenticazione tramite username e password

Dopo qualche istante (o qualche minuto) possiamo spostarci in ‘Database Access‘ e verificare che il nuovo utente sia stato correttamente creato. Come metodo di autenticazione viene indicato SCRAM (Salted Challenge Response Authentication Mechanism). Si tratta di un meccanismo di autenticazione tramite nome utente e passoword che non è fra i più sicuri, ma è più che accettabile per lo scopo di questa guida.

Configurazione Cluster Atlas - passo 1

Spostiamoci poi nella sezione Network Access selezionabile nella colonna di sinistra fra le opzioni di sicurezza e stabiliamo quali indirizzi IP possono collegarsi al cluster. Clicchiamo su ‘Add IP Address‘.

MongoDB Atlas configurazione lista ip

Qui elencheremo quali sono i soli indirizzi IP da cui ci si può collegare al cluster appena creato. Se effettuiamo il collegamento da un IP statico, basterà inserirlo. Se il nostro provider internet assegna indirizzi dinamici, dovremo cambiare la configurazione di Atlas ogni volta che l’IP cambia. Per semplicità clicchiamo quindi su ‘ALLOW ACCESS FROM ANYWHERE ‘ che popola automaticamente la lista degli indirizzi IP con ‘0.0.0.0/0’ in modo da consentire l’accesso da qualsiasi indirizzo IP. Volendo si può chiedere ad Atlas di negare l’accesso dopo un certo periodo. Nell’immagine riportata sotto scegliamo di cancellare la voce dalla lista degli indirizzi dopo 6 ore.

Configurazione Cluster Atlas - indirizzi ip permessi

Ricordate che è sempre possibile rimuovere o aggiungere un indirizzo IP in qualsiasi momento nella sezione ‘Network Access‘.

Configurazione Cluster Atlas - lista degli indirizzi ip

Importare degli esempi di database e collezioni

Dopo aver completato le procedure di configurazione per l’accesso, possiamo tornare alla schermata generale selezionando nella colonna di sinistra la voce ‘DEPLOYMENT > Database’. In questa pagina abbiamo diverse informazioni in merito al cluster avviato.

Schermata generale atlas cluster

A fianco al nome del cluster sono presenti 4 pulsanti. Se clicchiamo su ‘•••’ e poi su ‘Load Sample Dataset‘ avremo la possibilità di caricare sui server 350MB di dati di esempio organizzati in database e collezioni. In questo modo possiamo vedere da vicino come sono organizzate delle collezioni in MongoDB e come sono strutturati dei documenti.

Pulsante della schermata iniziale per aggiungere dati al cluster

Nella finestra di dialogo che verrà aperta, clicchiamo su ‘Load Sample Dataset‘.

Conferma

Sarà necessario un po’ di tempo per caricare tutti i dati.

Processo di caricamento dati di esempio su Atlas

Al termine di questa procedura dovremmo visualizzare un messaggio di conferma nella schermata principale. I grafici dovrebbero invece indicare che sono stati scritti dei dati. Inoltre possiamo notare che la dimensione dei dati è passata da 0.0B a circa 340MB.

Processo di caricamento dati di esempio su Atlas

Interfaccia di MongoDB Atlas

Come visualizzare i database e le collezioni

Dalla schermata iniziale (DEPLOYMENT > Database) possiamo visualizzare i database e le collezioni appena caricate cliccando sul pulsante ‘Browse Collections‘.

Elenco database e collezioni in MongoDB Atlas

Nella pagina che si aprirà, troviamo in alto il numero di database e collezioni attualmente presenti sui server. A sinistra abbiamo un elenco di database. Se selezioniamo un database, visualizziamo le informazioni dettagliate in merito alle collezioni.

Informazioni dettagliate sulle collezioni presenti in un database in MongoDB Atlas

Cliccando sulla freccia a fianco al nome di un database, vengono elencate le collezioni in esso contenute. Se selezioniamo una collezione, otteniamo i dettagli della collezione, ovvero lo spazio occupato, il numero totale di documenti presenti e la dimensione degli indici. Visualizziamo poi l’elenco paginato dei documenti presenti nella collezione. Possiamo esplorare ciascun documento, accedendo anche ai documenti annidati.

Strumenti per filtrare i documenti di una collezione

Possiamo inoltre editare, copiare o cancellare i documenti con i pulsanti dedicati.

Sopra l’elenco dei documenti è presente un modulo in cui possiamo inserire delle istruzioni che Atlas userà per filtrare, ordinare i documenti e proiettare solo alcuni dei campi di ciascun di essi. Illustreremo nelle prossime lezioni la sintassi in dettaglio, ma come si può intuire dai suggerimenti, dovremo utilizzare la sintassi dei documenti JSON. In realtà MongoDB è abbastanza permissivo e possiamo omettere i doppi apici per i campi. Volendo semplificare, impiegheremo la stessa sintassi degli oggetti letterali di Javascript.

Esempio di query in MongoDB Atlas

Nell’immagine riportata sopra, abbiamo un esempio di query. In particolare, abbiamo richiesto i soli documenti relativi ai ristoranti con nome uguale a ‘Kosher Island’ (otteniamo 1 solo documento in risposta). Chiediamo di visualizzare solo i campi ‘name‘, ‘cuisine‘ e ‘borough‘ del documento. Per far ciò, abbiamo inserito {name: 1, cuisine: 1, borough: 1, _id: 0} come valore della casella di input PROJECT. Per indicare quali campi devono essere selezionati, specifichiamo il nome del campo come chiave e associamo il valore 1 (es. {name: 1}). MongoDB restituirà sempre un documento in cui è presente comunque il campo ‘_id’ a meno che non chiediamo esplicitamente il contrario. Come possiamo vedere dall’esempio, usiamo ‘_id’ come chiave e associamo il valore 0 per indicare in modo esplicito che deve essere escluso dal documento finale.

Accedere al database remoto via linea di comando

Per collegarsi a MongoDB Atlas via linea di comando, torniamo alla schermata generale cliccando su DEPLOYMENT > DATABASE. Premiamo poi il pulsante CONNECT posto al centro dello schermo.

Aprire la finestra delle connessioni in Atlas

Si aprirà una finestra in cui dovremo scegliere come vogliamo collegarci a MongoDB Atlas.

Finestra di dialogo connessione a MongoDB Atlas

Per collegarsi via shell, scegliamo la prima opzione disponibile ‘Connect with the MongoDB Shell’.

Istruzioni per connessione ad Atlas via mongosh

Se abbiamo già installato correttamente mongosh, selezioniamo ‘I have the MongoDB Shell installed’ e copiamo la stringa di connessione mostrata. La stringa presenta un prefisso mongo+srv e termina con il nome del database a cui ci collegheremo. Se lasciamo la stringa invariata, una volta connessi ad Atlas, myFirstDatabase sarà il database corrente. Sarà inizialmente vuoto, ma, se non selezioniamo un altro database, qualsiasi collezione che creiamo sarà inserita al suo interno. Per maggiori dettagli sul formato della stringa di connessione introdotto a partire dalla versione 3.6 di MongoDB, è possibile consultare la documentazione ufficiale.

A questo punto possiamo aprire la shell e incollare il testo copiato, premiamo il tasto INVIO e ci verrà richiesto di inserire la password dell’utente specificato tramite l’opzione --username. Si tratta delle credenziali aggiunte su Atlas quando abbiamo creato un nuovo utente per l’accesso al database.

Se tutto procede correttamente, dovremmo completare la connessione al cluster e visualizzare le informazioni relative. Inoltre il prompt dei comandi dovrebbe aggiornarsi (es. ‘Atlas atlas-796201-shard-0 [primary] myFirstDatabase >‘) per indicare che siamo collegati al server primario del cluster e che il database corrente è myFirstDatabase. Per conferma, possiamo lanciare il comando db che mostra a video il nome del database corrente.

Possiamo invece impartire il comando show dbs per mostrare tutti i database.

Atlas atlas-726407-shard-0 [primary] myFirstDatabase> show dbs
sample_airbnb       56.1 MB
sample_analytics    9.58 MB
sample_geospatial   1.48 MB
sample_mflix        50.8 MB
sample_restaurants   8.2 MB
sample_supplies     1.18 MB
sample_training       57 MB
sample_weatherdata  2.91 MB
admin                344 kB
local                644 MB

Per uscire e chiudere la connessione sarà sufficiente eseguire il comando exit

Atlas atlas-726407-shard-0 [primary] myFirstDatabase> exit

Come collegarsi a MongoDB Atlas con MongoDB Compass

Per collegarsi tramite MongoDB Compass, clicchiamo sempre sul pulsante CONNECT e selezioniamo ‘Connect using MongoDB Compass’, copiamo anche in questo caso la stringa di connessione facendo attenzione a sostituire <password> con la password dell’utente (si tratta sempre delle credenziali dell’unico utente creato su Atlas, non delle proprie credenziali di accesso ai servizi di MongoDB).

Istruzioni per collegarsi ad Atlas via MongoDB Compass

Apriamo MongoDB Compass, incolliamo la stringa di connessione nell’apposito campo di input e clicchiamo su ‘Connect‘. Se dovesse comparire invece un modulo in cui inserire le singole informazioni di connessione, clicchiamo su ‘Paste connection string’.

Nuova connessione con MongoDB Compass

Dovremo attendere qualche istante finché non viene completata la connessione. Nella schermata principale saranno quindi elencati tutti i database presenti su Atlas.

Schermata iniziale di MongoDB Compass

Conclusioni

Dopo aver creato un account su MongoDB Atlas, nella prossima lezione scopriremo alcuni degli strumenti installati nelle precedenti lezioni e vedremo quali comandi usare per importare o esportare i dati del database.

Pubblicitร