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
mongod
e 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.tgz
Invece 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 denominatabin
che conterrebbe diversi file binari insieme amongod
emongo
.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 # exit
Per avviare il server, è necessario fornire il seguente comando dalla posizione corrente:
$ ./mongod
Avrebbe 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.
$ ./mongo
Di 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.bin
directorybin
contiene diversi file binari insieme amongod
emongo
. 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
data
con una sottocartella denominatadb
cui 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:
> mongod
Avrebbe avviato il server sulla porta 27017 per impostazione predefinita.
Aprire un altro prompt dei comandi e digitare quanto segue per avviare il client:
> mongo
Di 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.list
su 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.list
Aggiorna l'elenco dei pacchetti.
$ sudo apt-get update
Installa 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.asc
Aggiorna l'elenco dei pacchetti.
$ sudo yum update
Installa 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 }
neltest
database 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()