Come approcciarsi a Mongo DB senza pagare pegno con la Comfort zone!

Mongo DB appena prima prima del teletrasporto e dei motori a curvatura!

Istruzioni per l’uso

I dati con cui abbiamo a che fare ogni giorno sono tanti, prendiamo anche solo una semplice rubrica. C’è chi la gestisce solo con il telefono, chi con il cartaceo di una agenda, chi usa Access o altro in locale sulla sua macchina. In ogni caso memorizzare i dati (che siano nominativi, password, clienti, numeri di targa per lavoro o partite di scacchi da ricordare poco importa) risulta essere una attività intramontabile. Il problema delle tecnologie nuove é che quando escono vorrebbero scalfire le nostre abitudini ma lo sappiamo siamo dei pigri per natura e ci assestiamo in comportamenti che nel tempo diventano sempre più rigidi e difensivi fino ad escludere l’avvento del NUOVO. Prendiamo ad esempio Mongo DB che si installa facilmente sulla propria macchina. L’utente che non vuole essere sradicato dalle sue cicliche ripetizioni comportamentali inizia a trovare le scuse più svariate per non usarlo: ma io non mi ricordo neanche come si usa la vecchia finestra terminale di window, ma io faccio tutto con Access perchè devo perdere tempo e cambiare, ma io sviluppo in PHP e mysql per estrapolare i dati e lo si sa servono server dedicati per leggere i dati in rete con Mongo. Di fatto però le cose sono più semplici di come vogliamo farla sembrare percchè Mongo di fatto è davvero uno strumento potente, sicuro e flessibile e non é quel buco nero che sembra proiettarci verso un universo parallelo inconoscibile. Quello che può sembrare macchinoso all’ inizio è la difficolta di usare una finestra terminale che crea qualche anomalia nella digitazione dopo tanto che non la usiamo (ai tempi dei dinosauri o di Albano?) perchè il formato JSON richiede un attimo di tempo per poter essere assimilato nella sua formula dati racchiusi tra parentesi graffe a sua volta contenute in parentesi tonde. Rispetto a un database relazionale ha i suoi pro e i suoi contro. Il vantaggio più evidente è che MONGO DB con la sua logica dei DOCUMENTI non si preclude nessuna limitazione sul tipo di dati da inserire, io posso amalgamare senza traumi qualsiasi forma di dato che sia stringa, booleano, intero poco importa. Eh ma questo lo facevo anche io nel DB tradizionale! E no, non puoi cambiare in corsa un tipo di dato da stringa a intero in mysql quando dentro magari ci sono migliaia di dati, ci sono dei vincoli di progettazione dei database relazionali tradizionali che non si possono infrangere! Flessibilità, velocità di esecuzione quindi al top con Mongo! Poi ti consente di non preparare l’ambiente di sviluppo che accoglierà i dati, puoi fare tutto in corsa. Il Database non esiste? Lo crei senza dover impostare alcunchè, fa tutto lui in automatico. La tabella non esiste? Te la crea Mongo al momento di inserire i dati nella collection! Tabella sta a significare per Mongo un recipiente che raccoglierà i nostri documenti, perchè i campi che andremo a scrivere nelle nostre immissioni essendo in formato testo con JSON, non necessitano di lavorazioni preliminari come accade per esempio con un ID in MySQL dove devi impostare la lunghezza dei dati, se è intero, se autoincrmentante e chiave primaria etc etc! Qui Mongo ti inserisce un ID in automatico e quella sarà la tua chiave univoca per quel record (documento in realtà), vediamo come si svolge di fatto l’azione in dettaglio. Saltando tutta la fase preliminare dell’ installazione e della preparazione dell’ ambiente con l’aggiornamento del path da impostazioni etc etc in modo da lanciare da ogni cartella mongo, anche dalla root, senza dover entrare nella sua cartella BIN per lanciare l’eseguibile (siamo su Window 10 come SO) diciamo che siamo arrivati al punto che abbiamo lanciato la nostra alternativa rivoluzionaria ad Access. Quindi ecco i comandi che andremo a digitare sulle nostre collection o tabelle secondo l’era di Albano. Voglio creare un database da usare, come faccio?

use farwebdesign;

che cosa avrei fatto impartendo questo imperioso comando? Ho detto di crearmi uno spazio per le mie collection. Se non esiste lo crea in automatico, altrimenti ci si posiziona alla velocità della luce. Adesso mi posso divertire a inserire i dati, poco importa se dentro questo spazio progettuale fatto di materia oscura appena creato io abbia o no delle tabelle (ancora?????? Si chiamano collection nell’ era del dopo mesozoico), diciamo che voglio tenere traccia dei miei progetti personali con un nome progetto, il link del progetto e la categoria inerente il progetto, in modo da poter cercare velocemente quello che mi serve in futuro estrapolando per argomenti come faccio? Inserisco i dati seguendo questo schema JSON all’ interno della tabella progetto (basta con le tabelle, non esistono in Mongo):

>db.project.insert({“name”:”nameproject”, “link”:”httpseguitodaurlcompleto”, “category”: “css”});

dopo l’invio, il motore di Mongo mi risponderà che ha inserito la sua ROW, il suo numero 1 record. facendo un:

>db.project.find()

mi viene mostrato a video che cosa ho dentro la mia collection e mi verrà mostrato il record con un ID inserito automaticamente dalla macchina che non enrerà mai in collisione con altri ID. A questo punto inserisco altri dati e dopo potro impartire un comando tipo:

>db.project.find().count

che mi restituisce a video il numero di record inseriti

CONSIGLIO: essendo la digitazione da shell molto ostica all’ inizio ed è facile indurre in tentazione sbagliando in modo ripetuto, è più comodo quando si ha a che fare con questo nuovo approccio digitare i dati esternamente con un editor di codice o anche blocco note, in modo da velocizzare le operazioni di trascrizione JSON senza continui errorini da dover correggere (virgolette, parentesi etc etc).

Bene sono riuscito a costruire il mio primo DB! Ottimo, a questo punto potrei dare comandi come:

db.project.find({“name”:”nameproject”}); per vedere solo il record che mi interessa.

Posso ad esempio ordinare il mio database per ordine discendente , dalla A alla Z con il comando:

db.project.find().sort({“name”:1});

o anche con:

db.project.find().sort({“name”:-1});

per ottenere una visualizzazione ascendente

Ok mi sono accorto di aver fatto un errore e di aver inserito due record con il nome del campo name per esempio uguale come faccio a correggere?
Ci sono due metodi, uno che prevede un semplice aggiornamento usando la formula $set; che abbiamo accuratamente evitato perché presuppone un prima e un dopo tra stringhe come confronto che creerebbe comandi nel nostro caso prolissi per cui abbiamo ripiegato invece su un semplice:

db.project.remove({“_id”:”nomeid”});

in modo da reinserire il successivo record corretto nelle sue diciture corrette come è stato riportato sopra.

CONCLUSIONI: è vero, è molto facile litigare all’ inizio con questa nuova tecnologia perché il formato JSON senza il supporto visuale può farci sclerare se non siamo abituati a battere tasti su una finestra terminale. Superato lo scoglio iniziale si possono infine apprezzare le doti di Mongo DB nella sua versione NO SQL, che è molto più pratico e veloce rispetto al conoscibile. L’importante è rendere l’utilizzo di una tecnologia funzionale al quotidiano: se ci serve collezionare dati con questa logica dei documenti allora il pranzo è servito perchè come abbiamo visto i database sono confinati in una spazio siderale sicuro e i DB e i documenti sono facili da trovare e modificare.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...