Lascia che ti dia una rapida panoramica di MongoDB.
Perché MongoDB è interessante?
Come è utile per la nostra applicazione?
E quali sono alcune delle caratteristiche salienti di MongoDB in
contrasto con i tradizionali database SQL?
Quindi questo non sarà un intero trattato o banche dati.
Presumo che abbiate una conoscenza sufficiente delle banche dati.
Quindi cosa introdurrei ciò che MongoDB sarebbe facile da seguire per te.
Dalla tua conoscenza preliminare dei database,
suppongo che tu abbia già capito che i database vengono utilizzati per memorizzare dati strutturati
e consentono anche di eseguire
varie operazioni dei dati, tra cui interrogare i dati,
inserire record nel database,
aggiornare un record esistente nel database o l'eliminazione di un record dal database.
Le tipiche operazioni crud supportate nei database.
Structured Query Language o database basati su SQL sono stati
molto popolari per molto tempo come mezzo di memorizzazione dei dati.
MySQL è un esempio di database basato su SQL.
Sono stati molto efficaci nella memorizzazione
dei dati e quindi nell'affrontare molte delle esigenze delle applicazioni.
Infatti, molti siti Web utilizzano già database SQL come back-end per la memorizzazione dei dati dato
che il motivo per cui non è
importante database SQL con nuovi tipi di applicazioni che sono in arrivo online.
C' è una crescente domanda di
nuove funzionalità che non tutti i database basati su SQL possono affrontare.
Quindi questo è dove il database basato su NoSQL non solo
i database basati su SQL stanno guadagnando molte sovvenzioni,
MongoDB ne è un esempio.
Quindi i database NoSQL sono progettati per
affrontare alcune delle carenze dei database basati su SQL.
I database NoSQL stessi possono essere classificati in quattro diverse categorie.
Abbiamo database basati su documenti come MongoDB,
abbiamo i database basati su valori chiave più semplici come Redis,
database basati su colonne come Cassandra e quindi i database grafici più recenti come
Neo4J e in effetti ci sono più ora sul mercato di questi esempi che ho dato.
Ma, naturalmente, in questo corso,
ci concentreremo principalmente su database basati su documenti, MongoDB in particolare.
Quindi esaminerò di più su MongoDB nel resto di questa lezione.
I database dei documenti, come suggerisce il nome,
sono costruiti attorno ai documenti.
Un documento è un'unità di informazioni autonoma e può essere in molti formati diversi,
JSON è uno dei formati più popolari per la memorizzazione di documenti in un database di documenti.
Ad esempio, un documento JSON viene mostrato qui e
questo sarebbe qualcosa che vengono conferiti in un database di documenti tipico.
I documenti stessi possono essere organizzati in collezioni.
Quindi una raccolta è un gruppo di documenti e, a sua volta,
il database stesso può essere considerato come un insieme di collezioni.
Quindi questi termini, «Raccolte di documenti» e «Il database» si verificheranno
frequentemente quando discutiamo di database di documenti e MongoDB in particolare.
Perché i database NoSQL ci interessano?
In particolare, la scalabilità è uno
dei motivi per cui i database NoSQL hanno brillato molto bene.
Ora, in termini di scalabilità,
quando esaminiamo i due requisiti;
disponibilità e coerenza dei database, in genere,
i database SQL trovano molto difficile soddisfare entrambi i requisiti contemporaneamente.
Quindi c'è un compromesso tra disponibilità e coerenza.
Quindi questo è dove i database NoSQL hanno avuto molto
più successo nel soddisfare entrambi i requisiti.
Questo è dove
entra in vigore anche il terzo aspetto evidenziato qui, la tolleranza alle partizioni.
Ora partizionare un database SQL e poi distribuirlo non è così semplice.
Mentre un database NoSQL è molto più suscettibile
di essere suddiviso e quindi distribuito su più server.
Il secondo aspetto del motivo per cui i database NoSQL sono stati popolari è la facilità di distribuzione.
Quando si utilizza un database SQL,
è necessario abbinare i record nel database SQL
agli oggetti nella lingua nativa come Java o Javascript e così via.
Quindi c'è la necessità di mappatura relazionale degli oggetti e questo è
dove un gateway intermedio deve riempire questo requisito.
Con un database NoSQL come un database basato su documenti che memorizza i dati sotto forma di JSON,
la mappatura diventa abbastanza semplice e questo è uno dei motivi per cui
i database NoSQL sono stati molto popolari nell'area di sviluppo web.
Venendo su MongoDB in particolare,
MongoDB è un database di documenti.
Il server stesso può supportare più database.
Un database in particolare è un insieme di collezioni
e la raccolta stessa, come abbiamo discusso in precedenza, è un insieme di documenti.
Quindi il documento diventa l'unità di informazione in caso di MongoDB.
Il documento in MongoDB non è altro che un documento JSON.
Infatti, MongoDB memorizza il documento in una forma più compatta chiamata come formato BSON.
Ne parleremo nella prossima diapositiva.
Mentre MongoDB è un database basato su documenti,
memorizza i documenti JSON in una forma compatta
chiamata come il formato BSON o il formato JSON binario.
Ora questo supporta il prefisso di lunghezza su ogni valore in modo
che saltare su un campo diventi molto più facile.
Quindi, come vedi, MongoDB supporta funzionalità aggiuntive rispetto a un semplice database di documenti.
Vengono memorizzate anche le informazioni sul tipo di valore di un campo.
Inoltre, all'interno del documento JSON,
vengono memorizzati tipi primitivi aggiuntivi che sono utili
quando si eseguono operazioni sul database.
Cose come il formato di data UTC,
supporta anche binario raw e utilizza anche un formato ID oggetto
per memorizzare l'ID di ogni documento nel database, se si sceglie di farlo.
Parliamo di questo in modo un po 'più dettagliato nella diapositiva successiva.
Parliamo dell'ID oggetto MongoDB.
Ogni documento nel database MongoDB deve avere un campo ID,
un campo ID di sottolineatura,
che funge da chiave primaria per il documento.
E questo campo è unico per ogni documento.
Il campo ID stesso può essere utilizzato in
molti formati e un particolare formato che MongoDB
assegna automaticamente nel caso in cui non si scelga di utilizzare il proprio campo ID
è l'ID oggetto creato per impostazione predefinita da MongoDB.
Quindi l'ID dell'oggetto stesso è
un pezzo strutturato di informazioni, ma viene memorizzato come ID del documento.
Ad esempio, il campo ID
assegnato automaticamente da Mongo nel caso in cui non si specifichi un campo ID,
contiene l'ID oggetto sotto forma di una stringa lunga.
Ora questa stringa ha un formato specifico
che consente di memorizzare una serie di informazioni all'interno dell'ID oggetto.
Diamo un'occhiata alla struttura dell'ID oggetto stesso nella diapositiva successiva.
Come ho accennato, il campo ID oggetto stesso è
un campo di 12 byte che memorizza le informazioni in un formato specifico.
I primi quattro byte includono un timestamp,
il tipico timestamp Unix nella risoluzione di un secondo.
Quindi questo è detto nei primi quattro byte.
Quindi i tre byte successivi verso l'ID della macchina,
il computer su cui è in esecuzione il server Mongo
e i due byte successivi sono l'ID del processo,
il processo Mongo specifico che ha creato
questo documento e quindi l'ultimo campo è un incremento.
Ora, come capisci,
il campo timestamp stesso è alla risoluzione di un secondo.
Quindi, se hai più documenti che sono memorizzati nello stesso secondo,
il campo di incremento distinguerà tra i documenti.
Essi incrementano il campo è un campo auto-incrementante.
Quindi ogni nuovo documento creato all'interno di un secondo otterrà un nuovo valore di incremento.
Quindi, combinato con questi due,
è possibile distinguere facilmente tra
diversi documenti che sono memorizzati all'interno del database dei documenti.
Quindi questo ti permette di dare chiaramente un ID univoco a ogni documento.
Non solo, dato un ID,
è possibile recuperare facilmente le informazioni da questo ID.
Quindi, ad esempio, è possibile ottenere l'ObjectID e quindi chiamare
il metodo getTimestamp dell'ID oggetto e
questo restituirà il timestamp nel formato data ISO.
In questo modo ti permetterà di identificare quando questo documento è stato creato.
Con questa rapida comprensione di MongoDB,
passiamo all'esercizio in cui prima installeremo MongoDB sul nostro computer
e successivamente interagiamo con il database MongoDB utilizzando l'ondulazione Mongo,
il ciclo di stampa di lettura valutiamo che Mongo supporta.
Ora in poi, vedremo come possiamo accedere
al server Mongo dall'interno della nostra applicazione nodo nella prossima lezione.