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:

cercando di avviare il server mongodb senza le directory \data\db

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
inizialmente si dispone di un db chiamato “test”

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.

  1. Aprire il prompt dei comandi e digitaremongod 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:CrudDBadminconfig 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.

SQL termini e NoSQL termini di Victoria Malesia

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 nameeage. 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.

modi in cui i dati possono essere memorizzati in un JSON

Esistono tre metodi di inserimento dei dati.

  1. insertOne() viene utilizzato per inserire un solo documento.
  2. insertMany() viene utilizzato per inserire più di un documento.
  3. 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à.

Dati inseriti con successo

7. L’interrogazione di Dati

Ecco come è possibile eseguire una query tutti i dati da una collezione:

db.myCollection.find()
risultato

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()
risultato

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" })
risultato

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à.

risultato

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à:

risultato

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 solonameagelocation.

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.

riferimento: MongoDB manuale

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:

funzioni di aggregazione nei database SQL. ref: Tutorial Gateway

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();
risultato

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!



Lascia un commento

Il tuo indirizzo email non sarà pubblicato.