MongoDBAan de slag met MongoDB


Opmerkingen

  • Gegevens in de wereld begonnen enorm te groeien nadat de mobiele applicatie op de markt kwam. Deze enorme hoeveelheid gegevens werd bijna onmogelijk om te verwerken met traditionele relationele database - SQL. NoSQL-databases worden geïntroduceerd om die gegevens te verwerken waar veel meer flexibiliteit kwam, zoals een variabel aantal kolommen voor elke gegevens.
  • MongoDB is een van de toonaangevende NoSQL-databases. Elke verzameling bevat een aantal JSON-documenten. Elk gegevensmodel dat in een JSON-document kan worden uitgedrukt, kan eenvoudig worden opgeslagen in MongoDB.
  • MongoDB is een server-client-database. Server draait meestal met het binaire bestand mongod en client draait met mongo .
  • Er is geen join-operatie in MongoDB voorafgaand aan v.3.2, om verschillende filosofische en pragmatische redenen . Maar Mongo shell ondersteunt javascript, dus als $ lookup niet beschikbaar is, kan men join-operaties op documenten in javascript simuleren voordat ze worden ingevoegd.
  • Als u een exemplaar in een productieomgeving wilt uitvoeren, wordt het ten zeerste aanbevolen om de Operations Checklist te volgen.

versies

Versie Publicatiedatum
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

Basisopdrachten op mongoschelp

Toon alle beschikbare databases:

show dbs;
 

Selecteer een bepaalde database om toegang te krijgen, bijv. mydb . Hiermee wordt mydb als het nog niet bestaat:

use mydb;
 

Toon alle collecties in de database (zorg dat u er eerst een selecteert, zie hierboven):

show collections; 
 

Toon alle functies die kunnen worden gebruikt met de database:

db.mydb.help();
 

Gebruik de opdracht db om uw momenteel geselecteerde database te controleren

> db
mydb
 

db.dropDatabase() wordt gebruikt om een bestaande database te verwijderen.

db.dropDatabase()
 

Aanvullende voorwaarden

SQL-voorwaarden MongoDB Voorwaarden
Database Database
Tafel Verzameling
Entiteit / rij Document
Kolom Sleutel / veld
Aan tafel deelnemen Ingesloten documenten
Hoofdsleutel Primaire sleutel (standaardsleutel _id verstrekt door mongodb zelf)

Uitvoering van een JavaScript-bestand in MongoDB

./mongo localhost:27017/mydb myjsfile.js
 

Verklaring: Met deze bewerking wordt het script myjsfile.js uitgevoerd in een mongo shell die verbinding maakt met de mydb database op de mongod instantie die toegankelijk is via de localhost interface op poort 27017 . localhost:27017 is niet verplicht, omdat dit de standaardpoort is die mongodb gebruikt.

U kunt ook een .js bestand uitvoeren vanuit de mongo console.

>load("myjsfile.js")
 

Hallo Wereld

Na het installatieproces moeten de volgende regels worden ingevoerd in mongo shell (clientterminal).

> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
 

Hallo Wereld!

Uitleg:

  • In de eerste regel hebben we een gekoppeld document { key : value } ingevoegd in de standaard database- test en in de collectie met de naam world .
  • In de tweede regel halen we de gegevens op die we zojuist hebben ingevoegd. De opgehaalde gegevens worden bewaard in een JavaScript-variabele met de naam cur . Vervolgens hebben we met de functie next() het eerste en enige document opgehaald en bewaard in een andere js-variabele met de naam x . Drukte vervolgens de waarde af van het document dat de sleutel leverde.

Installatie

Volg de onderstaande stappen om MongoDB te installeren:

  • Voor Mac OS:

    • Er zijn twee opties voor Mac OS: handmatige installatie of homebrew .
    • Installeren met homebrew :
      • Typ de volgende opdracht in de terminal:
        $ brew install mongodb
         
    • Handmatig installeren:
      • Download de nieuwste versie hier . Zorg ervoor dat u het juiste bestand downloadt, controleer vooral of uw besturingssysteemtype 32-bit of 64-bit is. Het gedownloade bestand heeft de indeling tgz .

      • Ga naar de map waar dit bestand is gedownload. Typ vervolgens de volgende opdracht:

        $ tar xvf mongodb-osx-xyz.tgz
         

        In plaats van xyz zou er informatie over het xyz en systeemtype zijn. De uitgepakte map zou dezelfde naam hebben als het tgz bestand. In de map zou er een submap met de naam bin die verschillende binaire bestanden zou bevatten, samen met mongod en mongo .

      • Standaard bewaart de server gegevens in de map /data/db . We moeten dus die map maken en vervolgens de server uitvoeren met de volgende opdrachten:

        $ sudo bash
        # mkdir -p /data/db
        # chmod 777 /data
        # chmod 777 /data/db
        # exit
         
      • Om de server te starten, moet de volgende opdracht worden gegeven vanaf de huidige locatie:

        $ ./mongod
         

        Het zou de server standaard op poort 27017 starten.

      • Om de client te starten, moet een nieuwe terminal worden geopend met dezelfde map als voorheen. Vervolgens zou de volgende opdracht de client starten en verbinding maken met de server.

        $ ./mongo
         

        Standaard maakt het verbinding met de test . Als u de lijn ziet zoals connecting to: test . Dan hebt u MongoDB met succes geïnstalleerd. Proficiat! Nu kunt u Hello World testen om meer zelfvertrouwen te hebben.

  • Voor ramen:

    • Download de nieuwste versie hier . Zorg ervoor dat u het juiste bestand downloadt, controleer vooral of uw besturingssysteemtype 32-bit of 64-bit is.

    • Het gedownloade binaire bestand heeft de extensie exe . Voer het uit. Het zal een installatiewizard vragen.

    • Klik op Volgende .

    • Accepteer de licentieovereenkomst en klik op Volgende .

    • Selecteer Installatie voltooien .

    • Klik op installeren . Mogelijk wordt er een venster geopend waarin u om toestemming van de beheerder wordt gevraagd. Klik op Ja .

    • Klik na installatie op Voltooien .

    • Nu is de mongodb geïnstalleerd op het pad C:/Program Files/MongoDB/Server/3.2/bin . In plaats van versie 3.2 kan er een andere versie voor uw zaak zijn. De padnaam zou dienovereenkomstig worden gewijzigd.

    • bin directory bevat verschillende binaire bestanden samen met mongod en mongo . Als u het vanuit een andere map wilt uitvoeren, kunt u het pad in het systeempad toevoegen. Om het te doen:

      • Klik met de rechtermuisknop op Deze computer en selecteer Eigenschappen .
      • Klik op Geavanceerde systeeminstelling in het linkerdeelvenster.
      • Klik op Omgevingsvariabelen ... op het tabblad Geavanceerd .
      • Selecteer Pad uit het gedeelte Systeemvariabelen en klik op Bewerken ....
      • Voeg vóór Windows 10 een puntkomma toe en plak het bovenstaande pad. Vanaf Windows 10 is er een nieuwe knop om een nieuw pad toe te voegen.
      • Klik op OK om de wijzigingen op te slaan.
    • Maak nu een map met de naam data met een submap met de naam db waar u de server wilt uitvoeren.

    • Start opdrachtprompt van hun. Verander het pad in cmd of klik hier op het opdrachtvenster Openen dat zichtbaar zou zijn nadat je met de rechtermuisknop op de lege ruimte van de map-GUI hebt geklikt door tegelijkertijd op de Shift- en Ctrl-toets te drukken.

    • Schrijf de opdracht om de server te starten:

      > mongod
       

      Het zou de server standaard op poort 27017 starten.

    • Open een andere opdrachtprompt en typ het volgende om de client te starten:

      > mongo
       
    • Standaard maakt het verbinding met de test . Als u de lijn ziet zoals connecting to: test . Dan hebt u MongoDB met succes geïnstalleerd. Proficiat! Nu kunt u Hello World testen om meer zelfvertrouwen te hebben.

  • Voor Linux: bijna hetzelfde als Mac OS, behalve dat een gelijkwaardige opdracht nodig is.

    • Voor op Debian gebaseerde distributies (met apt-get ):
      • MongoDB Repository-sleutel importeren.

        $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
        gpg: Total number processed: 1\
        gpg:               imported: 1  (RSA: 1)
         
      • Repository toevoegen aan pakketlijst op 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
         
      • op 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
         
      • Pakketlijst bijwerken.

        $ sudo apt-get update
         
      • Installeer MongoDB.

        $ sudo apt-get install mongodb-org
         
    • Voor distro's op basis van Red Hat (met yum ):
      • gebruik een teksteditor die u verkiest.

        $ vi /etc/yum.repos.d/mongodb-org-3.4.repo

      • Plak de volgende tekst.

        [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
         
      • Pakketlijst bijwerken.

        $ sudo yum update
         
      • MongoDB installeren

        $ sudo yum install mongodb-org
         

De uitvoer van Find leesbaar maken in shell

We voegen drie records toe aan onze verzamelingstest als:

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

Als we ze via zoeken zien, zien ze er erg lelijk uit.

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

Gebruik de functie pretty () om dit probleem te omzeilen en leesbaar te maken.

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