MongoDB Tutorial
Iniziare con MongoDB
Ricerca…
Osservazioni
- I dati nel mondo hanno iniziato a crescere enormemente dopo l'arrivo dell'applicazione mobile sul mercato. Questa enorme quantità di dati è diventata quasi impossibile da gestire con il database relazionale tradizionale - SQL. I database NoSQL vengono introdotti per gestire quei dati in cui molta più flessibilità è arrivata come numero variabile di colonne per ogni dato.
- MongoDB è uno dei principali database NoSQL. Ogni raccolta contiene un numero di documenti JSON. Qualsiasi modello di dati che può essere espresso in un documento JSON può essere facilmente memorizzato in MongoDB.
- MongoDB è un database client-server. Il server viene solitamente eseguito con il file binario
mongode il client viene eseguito conmongo. - Non ci sono operazioni di join in MongoDB prima della v.3.2, per varie ragioni filosofiche e pragmatiche . Ma la shell di Mongo supporta javascript, quindi se $ lookup non è disponibile, è possibile simulare operazioni di join sui documenti in javascript prima di inserirli.
- Per eseguire un'istanza nell'ambiente di produzione, si consiglia vivamente di seguire l' Elenco di controllo delle operazioni .
Versioni
| Versione | Data di rilascio |
|---|---|
| 3.4 | 2016/11/29 |
| 3.2 | 2015/12/08 |
| 3.0 | 2015/03/03 |
| 2.6 | 2014/04/08 |
| 2.4 | 2013/03/19 |
| 2.2 | 2012/08/29 |
| 2.0 | 2011-09-12 |
| 1.8 | 2011-03-16 |
| 1.6 | 2010-08-31 |
| 1.4 | 2010-03-25 |
| 1.2 | 2009-12-10 |
Installazione
Per installare MongoDB, procedi nel seguente modo:
Per Mac OS:
- Ci sono due opzioni per Mac OS: installazione manuale o homebrew .
- Installazione con homebrew :
- Digitare il seguente comando nel terminale:
$ brew install mongodb
- Digitare il seguente comando nel terminale:
- Installazione manuale:
Scarica l'ultima versione qui . Assicurati di scaricare il file appropriato, in particolare verifica se il tuo tipo di sistema operativo è a 32 o 64 bit. Il file scaricato è in formato
tgz.Vai alla directory in cui è scaricato questo file. Quindi digitare il seguente comando:
$ tar xvf mongodb-osx-xyz.tgzInvece di
xyz, ci sarebbero alcune informazioni sulla versione e sul tipo di sistema. La cartella estratta sarebbe lo stesso nome del filetgz. All'interno della cartella, la loro sarebbe una sottocartella denominatabinche conterrebbe diversi file binari insieme amongodemongo.Di default il server mantiene i dati nella cartella
/data/db. Quindi, dobbiamo creare quella directory e quindi eseguire il server con i seguenti comandi:$ sudo bash # mkdir -p /data/db # chmod 777 /data # chmod 777 /data/db # exitPer avviare il server, è necessario fornire il seguente comando dalla posizione corrente:
$ ./mongodAvrebbe avviato il server sulla porta 27017 per impostazione predefinita.
Per avviare il client, è necessario aprire un nuovo terminale con la stessa directory di prima. Quindi il seguente comando avvia il client e si connette al server.
$ ./mongoDi default si collega al database di
test. Se vedi la linea come laconnecting to: test. Quindi hai installato con successo MongoDB. Congratulazioni! Ora puoi testare Hello World per essere più sicuro.
Per Windows:
Scarica l'ultima versione qui . Assicurati di scaricare il file appropriato, in particolare verifica se il tuo tipo di sistema operativo è a 32 o 64 bit.
Il file binario scaricato ha estensione
exe. Eseguirlo. Richiederà una procedura guidata di installazione.Fare clic su Avanti .
Accettare il contratto di licenza e fare clic su Avanti .
Seleziona l'installazione completa .
Clicca su Installa . Potrebbe richiedere una finestra per chiedere il permesso dell'amministratore. Fare clic su Sì .
Dopo l'installazione, fare clic su Fine .
Ora, mongodb è installato sul percorso
C:/Program Files/MongoDB/Server/3.2/bin. Invece della versione 3.2, potrebbe esserci qualche altra versione per il tuo caso. Il nome del percorso verrebbe modificato di conseguenza.bindirectorybincontiene diversi file binari insieme amongodemongo. Per eseguirlo da un'altra cartella, è possibile aggiungere il percorso nel percorso di sistema. Per farlo:- Fare clic con il tasto destro su Risorse del computer e selezionare Proprietà .
- Fai clic su Impostazioni di sistema avanzate nel riquadro di sinistra.
- Fai clic su Variabili d'ambiente ... nella scheda Avanzate .
- Seleziona Percorso dalla sezione Variabili di sistema e fai clic su Modifica ....
- Prima di Windows 10, aggiungi un punto e virgola e incolla il percorso sopra indicato. Da Windows 10, c'è un pulsante Nuovo per aggiungere un nuovo percorso.
- Fare clic su OK s per salvare le modifiche.
Ora crea una cartella denominata
datacon una sottocartella denominatadbcui si desidera eseguire il server.Avvia prompt dei comandi da loro. Cambiare il percorso in cmd o fare clic su Apri finestra di comando qui che sarebbe visibile dopo aver fatto clic con il pulsante destro sullo spazio vuoto della GUI della cartella premendo contemporaneamente i tasti Maiusc e Ctrl.
Scrivi il comando per avviare il server:
> mongodAvrebbe avviato il server sulla porta 27017 per impostazione predefinita.
Aprire un altro prompt dei comandi e digitare quanto segue per avviare il client:
> mongoDi default si collega al database di
test. Se vedi la linea come laconnecting to: test. Quindi hai installato con successo MongoDB. Congratulazioni! Ora puoi testare Hello World per essere più sicuro.
Per Linux: quasi come Mac OS, tranne che per alcuni comandi equivalenti.
- Per distro basati su Debian (usando
apt-get):Importa la chiave del repository MongoDB.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 gpg: Total number processed: 1\ gpg: imported: 1 (RSA: 1)Aggiungi repository alla lista dei pacchetti su Ubuntu 16.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.listsu Ubuntu 14.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.listAggiorna l'elenco dei pacchetti.
$ sudo apt-get updateInstalla MongoDB.
$ sudo apt-get install mongodb-org
- Per le distribuzioni basate su Red Hat (usando
yum):usa un editor di testo che preferisci.
$ vi /etc/yum.repos.d/mongodb-org-3.4.repo
Incolla il seguente testo.
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.ascAggiorna l'elenco dei pacchetti.
$ sudo yum updateInstalla MongoDB
$ sudo yum install mongodb-org
- Per distro basati su Debian (usando
Ciao mondo
Dopo il processo di installazione, è necessario inserire le seguenti righe nella shell mongo (terminale client).
> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
Ciao mondo!
Spiegazione:
- Nella prima riga, abbiamo inserito un documento accoppiato
{ key : value }neltestdatabase predefinito e nella raccolta denominataworld. - Nella seconda riga recuperiamo i dati che abbiamo appena inserito. I dati recuperati sono conservati in una variabile javascript denominata
cur. Quindi con la funzionenext(), abbiamo recuperato il primo e solo documento e lo abbiamo tenuto in un'altra variabile js chiamatax. Quindi ha stampato il valore del documento che fornisce la chiave.
Termini complementari
| Termini SQL | Termini MongoDB |
|---|---|
| Banca dati | Banca dati |
| tavolo | Collezione |
| Entità / Riga | Documento |
| Colonna | Chiave / campo |
| Partecipa al tavolo | Documenti incorporati |
| Chiave primaria | Chiave primaria (tasto predefinito _id fornito da mongodb stesso) |
Esecuzione di un file JavaScript in MongoDB
./mongo localhost:27017/mydb myjsfile.js
Spiegazione: Questa operazione esegue lo script myjsfile.js in una shell mongo che si collega al database mydb mongod accessibile tramite l'interfaccia localhost sulla porta 27017 . localhost:27017 non è obbligatorio in quanto questa è la porta predefinita utilizzata da mongodb .
Inoltre, puoi eseguire un file .js dalla console di mongo .
>load("myjsfile.js")
Rendere l'output di find leggibile nella shell
Aggiungiamo tre record al nostro test di raccolta come:
> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
Se li vediamo tramite find, sembreranno molto brutti.
> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
Per ovviare a questo problema e renderli leggibili, utilizzare la funzione pretty ().
> db.test.find().pretty()
{
"_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
"key" : "value1",
"key2" : "Val2",
"key3" : "val3"
}
{
"_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
"key" : "value2",
"key2" : "Val21",
"key3" : "val31"
}
{
"_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
"key" : "value3",
"key2" : "Val22",
"key3" : "val33"
}
>
Comandi di base sulla shell mongo
Mostra tutti i database disponibili:
show dbs;
Seleziona un particolare database per accedere, ad esempio mydb . Questo creerà mydb se non esiste già:
use mydb;
Mostra tutte le raccolte nel database (assicurati di selezionarne una per prima, vedi sopra):
show collections;
Mostra tutte le funzioni che possono essere utilizzate con il database:
db.mydb.help();
Per controllare il tuo database attualmente selezionato, usa il comando db
> db
mydb
db.dropDatabase() comando db.dropDatabase() viene utilizzato per eliminare un database esistente.
db.dropDatabase()