MongoDBIniziare con MongoDB


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 con mongo .
  • 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

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

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

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 } nel test database predefinito e nella raccolta denominata world .
  • Nella seconda riga recuperiamo i dati che abbiamo appena inserito. I dati recuperati sono conservati in una variabile javascript denominata cur . Quindi con la funzione next() , abbiamo recuperato il primo e solo documento e lo abbiamo tenuto in un'altra variabile js chiamata x . Quindi ha stampato il valore del documento che fornisce la chiave.

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
         
    • 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 file tgz . All'interno della cartella, la loro sarebbe una sottocartella denominata bin che conterrebbe diversi file binari insieme a mongod e mongo .

      • 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 la connecting 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 .

    • 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 directory bin contiene diversi file binari insieme a mongod e mongo . 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 denominata db 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 la connecting 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
         

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