MongoDB Zelfstudie
Aan de slag met MongoDB
Zoeken…
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 metmongo
. - 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 |
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
- Typ de volgende opdracht in de terminal:
- 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 hetxyz
en systeemtype zijn. De uitgepakte map zou dezelfde naam hebben als hettgz
bestand. In de map zou er een submap met de naambin
die verschillende binaire bestanden zou bevatten, samen metmongod
enmongo
.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 zoalsconnecting 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 metmongod
enmongo
. 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 naamdb
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 zoalsconnecting 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
- Voor op Debian gebaseerde distributies (met
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 naamworld
. - 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 functienext()
het eerste en enige document opgehaald en bewaard in een andere js-variabele met de naamx
. Drukte vervolgens de waarde af van het document dat de sleutel leverde.
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")
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"
}
>
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()