Come iniziare con MongoDB in 10 minuti
di Navindu Jayatilake
MongoDB è un ricco database NoSQL orientato ai documenti.
Se sei un principiante assoluto di NoSQL, ti consiglio di dare una rapida occhiata al mio articolo NoSQL pubblicato in precedenza.
Oggi, volevo condividere alcune delle cose di base sui comandi MongoDB come interrogare, filtrare i dati, eliminare, aggiornare e così via.
Va bene, basta parlare, mettiamoci al lavoro!
Configurazione ?
Per poter lavorare con MongoDB, devi prima installare MongoDB sul tuo computer. Per fare ciò, visita il centro download ufficiale e scarica la versione per il tuo sistema operativo specifico. Qui, ho usato Windows.
Dopo aver scaricato MongoDB community server setup, passerai attraverso un processo di installazione “successivo dopo successivo”. Una volta fatto, oltre al capo l’unità C in cui è stato installato MongoDB. Vai a programmi e seleziona la directory MongoDB.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
Nella directory bin, troverai un interessante paio di file eseguibili.
- mongod
- mongo
Parliamo di questi due file.
mongod sta per “Mongo Daemon”. mongod è un processo in background utilizzato da MongoDB. Lo scopo principale di mongod è quello di gestire tutte le attività del server MongoDB. Ad esempio, accettare richieste, rispondere al client e alla gestione della memoria.
mongo è una shell a riga di comando che può interagire con il client (ad esempio, amministratori di sistema e sviluppatori).
Ora vediamo come possiamo ottenere questo server installato e funzionante. Per farlo su Windows, prima devi creare un paio di directory nell’unità C. Apri il prompt dei comandi all’interno dell’unità C e procedi come segue:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
Lo scopo di queste directory è MongoDB richiede una cartella per memorizzare tutti i dati. Il percorso predefinito della directory dati di MongoDB è /data/db
sull’unità. Pertanto, è necessario fornire tali directory in questo modo.
Se si avvia il server MongoDB senza quelle directory, probabilmente verrà visualizzato il seguente errore:
Dopo aver creato questi due file, vai di nuovo alla cartella bin che hai nella tua directory mongodb e apri la tua shell all’interno esso. Eseguire il seguente comando:
mongod
Voilà! Ora il nostro server MongoDB è attivo e funzionante! ?
Per lavorare con questo server, abbiamo bisogno di un mediatore. Quindi apri un’altra finestra di comando all’interno della cartella bind ed esegui il seguente comando:
mongo
Dopo aver eseguito questo comando, passare alla shell che abbiamo eseguito il comando mongod (che è il nostro server). Alla fine verrà visualizzato un messaggio “connessione accettata”. Ciò significa che la nostra installazione e configurazione è riuscita!
Basta semplicemente eseguire il mongo shell:
db
impostare le Variabili di Ambiente
Per risparmiare tempo, è possibile impostare le variabili di ambiente. In Windows, questo viene fatto seguendo i menu seguenti:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
Basta copiare il percorso della nostra cartella bin e premere OK! Nel mio caso è C:\Program Files\MongoDB\Server\4.0\bin
Ora sei a posto!
Lavorare con MongoDB
C’è un sacco di GUI (Graphical User Interface) per lavorare con MongoDB server come MongoDB Compass, Studio 3T e così via.
Forniscono un’interfaccia grafica in modo da poter lavorare facilmente con il database ed eseguire query invece di utilizzare una shell e digitare manualmente le query.
Ma in questo articolo useremo prompt dei comandi per fare il nostro lavoro.
Ora è il momento per noi di tuffarsi in comandi MongoDB che ti aiuteranno a utilizzare con i vostri progetti futuri.
- Aprire il prompt dei comandi e digitare
mongod
per avviare il server MongoDB.
2. Aprire un’altra shell e digitare mongo
per connettersi al server di database MongoDB.
1. Trovare il database corrente trovi in
db
Questo comando mostrerà il database corrente trovi. test
è il database iniziale che viene fornito per impostazione predefinita.
2. Elenco database
show databases
Attualmente ho quattro database. Sono:CrudDB
admin
config
elocal
.
3. Andare per un particolare database
use <your_db_name>
Qui ho spostato il local
database. È possibile verificare questo se si tenta il comandodb
per stampare il nome del database corrente.
4. Creazione di un Database
Con RDBMS (Relational Database Management Systems) abbiamo Database, Tabelle, Righe e colonne.
Ma nei database NoSQL, come MongoDB, i dati vengono memorizzati in formato BSON (una versione binaria di JSON). Sono memorizzati in strutture chiamate “collezioni”.
Nei database SQL, questi sono simili alle tabelle.
Bene, parliamo di come possiamo creare un database in mongo shell.
use <your_db_name>
Aspetta, avevamo questo comando prima! Perché lo sto usando di nuovo?!
Nel server MongoDB, se il tuo database è già presente, usando quel comando navigerai nel tuo database.
Ma se il database non è già presente, MongoDB server creerà il database per te. Poi, sarà navigare in esso.
Dopo aver creato un nuovo database, l’esecuzione del comandoshow database
non mostrerà il database appena creato. Questo perché, fino a quando non contiene dati (documenti), non verrà visualizzato nell’elenco db.
5. Creazione di una raccolta
Naviga nel database appena creato con il comandouse
.
In realtà, ci sono due modi per creare una raccolta. Vediamo entrambi.
Un modo è inserire i dati nella raccolta:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
Questo creerà la tua raccoltamyCollection
anche se la raccolta non esiste. Quindi inserirà un documento con name
eage
. Queste sono raccolte non limitate.
Il secondo modo è mostrato di seguito:
2.1 Creazione di una raccolta non limitata
db.createCollection("myCollection")
2.2 Creazione di una raccolta limitata
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
In questo modo, si creerà una raccolta senza inserire dati.
Una “raccolta limitata” ha un numero massimo di documenti che impedisce lo straripamento dei documenti.
In questo esempio, ho abilitato il capping, impostando il suo valore su true
.
size : 2
indica un limite di due megabyte emax: 2
imposta il numero massimo di documenti su due.
Ora se provi ad inserire più di due documenti inmySecondCollection
e usi il comandofind
(di cui parleremo presto), vedrai solo i documenti inseriti più di recente. Tenete a mente questo non significa che il primo documento è stato eliminato — è solo che non mostra.
6. Inserimento di dati
Possiamo inserire dati in una nuova raccolta o in una raccolta che è stata creata in precedenza.
Esistono tre metodi di inserimento dei dati.
-
insertOne()
viene utilizzato per inserire un solo documento. -
insertMany()
viene utilizzato per inserire più di un documento. -
insert()
viene utilizzato per inserire documenti quanti ne vuoi.
Di seguito sono riportati alcuni esempi:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
- insertMany()
db.myCollection.insertMany()
insert()
metodo è simile al tag insertMany()
metodo.
Inoltre, si noti che abbiamo inserito una nuova proprietà chiamatalocation
sul documento perJohn Doe
. Quindi se usi find
, vedrai solo per john doe
la proprietà location
è allegata.
Questo può essere un vantaggio quando si tratta di database NoSQL come MongoDB. Consente la scalabilità.
7. L’interrogazione di Dati
Ecco come è possibile eseguire una query tutti i dati da una collezione:
db.myCollection.find()
Se si desidera visualizzare i dati in un detergente, modo just add .pretty()
alla fine di esso. Questo mostrerà il documento in formato JSON abbastanza stampato.
db.myCollection.find().pretty()
Attendere…In questi esempi, hai notato qualcosa come _id
? Come ci e ‘ arrivato?
Beh, ogni volta che si inserisce un documento, MongoDB aggiunge automaticamente un_id
campo che identifica in modo univoco ogni documento. Se non vuoi che venga visualizzato, esegui semplicemente il seguente comando
db.myCollection.find({}, _id: 0).pretty()
Successivamente, esamineremo i dati di filtraggio.
Se si desidera visualizzare un documento specifico, è possibile specificare un singolo dettaglio del documento che si desidera visualizzare.
db.myCollection.find( { name: "john" })
diciamo solo si desidera visualizzare le persone la cui età è inferiore a 25. È possibile utilizzare $lt
per filtrare per questo.
db.myCollection.find( { age : {$lt : 25} })
allo stesso modo, $gt
si distingue per la maggiore, $lte
è “minore o uguale”, $gte
è “maggiore o uguale” e $ne
“non è uguale”.
8. Aggiornamento dei documenti
Diciamo che vuoi aggiornare l’indirizzo o l’età di qualcuno, come potresti farlo? Bene, vedi il prossimo esempio:
db.myCollection.update({age : 20}, {$set: {age: 23}})
Il primo argomento è il campo di quale documento vuoi aggiornare. Qui, specifico age
per la semplicità. Nell’ambiente di produzione, è possibile utilizzare qualcosa come il campo_id
.
È sempre meglio usare qualcosa come _id
per aggiornare una riga univoca. Questo perché più campi possono avere lo stessoage
ename
. Pertanto, se si aggiorna una singola riga, interesserà tutte le righe che hanno lo stesso nome ed età.
Se si aggiorna un documento in questo modo con una nuova proprietà, diciamo location
per esempio, il documento sarà aggiornato con il nuovo attributo. E se fai un find
, allora il risultato sarà:
Se è necessario rimuovere una proprietà di un singolo documento, si potrebbe fare qualcosa di simile a questo (diciamo che si desidera age
per essere andato):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Rimozione di un documento
Come ho detto in precedenza, quando si aggiorna o si elimina un documento, è sufficiente specificare_id
non soloname
age
location
.
db.myCollection.remove({name: "navindu"});
10. Rimozione di una raccolta
db.myCollection.remove({});
Nota, questo non è uguale al metododrop()
. La differenza è che drop()
viene utilizzato per rimuovere tutti i documenti all’interno di una raccolta, ma il remove()
metodo viene utilizzato per eliminare tutti i documenti insieme alla raccolta stessa.
Operatori logici
MongoDB fornisce operatori logici. L’immagine qui sotto riassume i diversi tipi di operatori logici.
diciamo che si desidera visualizzare le persone la cui età è inferiore a 25, e la cui posizione è Colombo. Cosa potremmo fare?
Possiamo usare l’operatore $and
!
db.myCollection.find({$and:});
Ultimo ma non meno importante, parliamo di aggregazione.
Aggregazione
Un rapido promemoria su ciò che abbiamo imparato sulle funzioni di aggregazione nei database SQL:
In poche parole, l’aggregazione raggruppa i valori da più documenti e li riassume in qualche modo.
Immagina se avessimo studenti maschi e femmine in una collezionerecordBook
e vogliamo un conteggio totale su ciascuno di essi. Per ottenere la somma di maschi e femmine, potremmo usare la funzione aggregata $group
.
db.recordBook.aggregate();
conclusioni
Così, abbiamo discusso le basi di MongoDB che si potrebbe aver bisogno in futuro per creare un’applicazione. Spero che ti sia piaciuto questo articolo-grazie per la lettura!