MongoDB tutorial: installatie en inleiding

Wat is MongoDB?

De databasemodellen SQL en NoSQL verschillen doorgaans sterk van elkaar wat betreft configuratie en bediening. Het gebruik van NoSQL databasemodellen kan schelen in de kosten en een snelle responstijd opleveren. De opensourcesoftware MongoDB bewijst dat je bij het gebruik van een NoSQL-oplossing niet per se al je kennis over relationele databasesystemen overboord hoeft te gooien. Dankzij de flexibele opslag van gegevens onderscheidt de document georiënteerde database zich duidelijk van klassiekers als MySQL, maar de modellen hebben ook enkele overeenkomsten. De querytaal en de opdrachtsyntaxis van MongoDB zijn even wennen, maar experts op het gebied van SQL zullen verder geen grote moeilijkheden ondervinden bij de overstap. 

In deze MongoDB-tutorial gaan we in op de installatie, configuratie en het beheer van het moderne databasesysteem, naar het voorbeeld van Ubuntu.


MongoDB tutorial: installatie

Stap 1: installatie

In de downloadsectie op de officiële website van MongoDB vind je de gratis beschikbare opensourceversie ‘Community Server’ en de commerciële Enterprise-oplossingen. In de eerste stap moet je dus de installatie- en binaire bestanden voor je systeem zoeken en downloaden. Omdat MongoDB geschikt is voor alle platforms kun je hier kiezen tussen verschillende Windows- en Linux-systemen alsook OS X en Solaris.

Op een Windows-besturingssysteem wordt de database met behulp van het gedownloade installatiebestand in de gewenste map geïnstalleerd. Gebruikers van Windows 10 kunnen daarvoor de versie voor Windows Server 2008 (64-bit) downloaden. Voor Linux download je zoals gewoonlijk een archiefbestand dat je eerst uitpakt en daarna met het pakketbeheer installeert. Afhankelijk van de distributie moet je eventueel eerst de MongoDB Public GPG Key importeren. Voor Ubuntu is deze verificatiesleutel vereist. Deze kun je met het volgende commando implementeren:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Vervolgens update je de lijst van het pakketbeheer:

sudo apt-get update

Daarna installeer je MongoDB inclusief handige hulpprogramma’s:

sudo apt-get install -y mongodb-org

MongoDB tutorial: server

Stap 2: MongoDB-server starten

De standaard installatiemap /var/lib/mongodb en de logboekmap /var/log/mongodb kun je optioneel in het configuratiebestand /etc/mongod.conf wijzigen. Met behulp van het volgende commando start je de database:

sudo service mongod start

Als je in plaats van de parameter start de parameter stop gebruikt, dan beëindig je de uitvoering van de database. Met restart wordt de database opnieuw opgestart. Om te controleren of MongoDB succesvol is gestart, kijk je in het logboekbestand /log/mongodb/mongod.log.

[initandlisten] waiting for connections on port <port>

Deze regel toont dat de databaseserver actief is en wacht op ingaande verbindingen op de poort (<port>) die in het configuratiebestand is gedefinieerd. Standaard wordt hier de poort 27017 gebruikt.


MongoDB tutorial: client

Stap 3: MongoDB-client starten

Als de MongoDB-server actief is, kun je de desbetreffende client starten. We gebruiken hiervoor het opdrachtregelprogramma Mongo Shell, dat gebaseerd is op Javascript en kan worden gebruikt voor het beheer van de database en voor de toegang tot en het bijwerken van de gegevens. Op hetzelfde systeem waarop de MongoDB-toepassing wordt uitgevoerd, start je de client met het eenvoudige commando:

mongo

Mongo Shell maakt nu automatisch verbinding met de actieve MongoDB-instantie op de lokale host en de poort 27017. Natuurlijk kun je deze verbindingsinstellingen ook aanpassen via de desbetreffende parameters. Deze en enkele andere belangrijke opties zijn samengevat in onderstaande tabel:

Parameter Beschrijving
--shell Activeert de Shell-interface, waarin na het uitvoeren van een opdracht de desbetreffende weergave verschijnt.
--nodb Voorkomt dat Mongo Shell verbinding maakt met een database.
--port <port> Stelt de poort voor de verbinding in.
--host <hostname> Stelt de host voor de verbinding in.
--help of –h Toont de opties.
--username <username> of –u <username> Als er toegangsrechten zijn ingesteld, meld je je op deze manier aan met de desbetreffende gebruikersnaam.
--password <password> of –p <password> Als er toegangsrechten zijn ingesteld, meld je je op deze manier aan met het desbetreffende wachtwoord.

De punthaken die hier zijn gebruikt, zijn geen onderdeel van de parameter en verschijnen daarom niet in het commando. Als je in plaats van de standaardpoort 27017 liever de poort 40000 wilt instellen, betekent dit dat je invoer er als volgt uitziet:

mongo --port 40000

MongoDB tutorial: database

Stap 4: een MongoDB-database aanmaken

Zodra MongoDB en de client zijn gestart, kun je gegevens gaan beheren en bewerken. Daarvoor moet je wel eerst een database aanmaken, anders worden de verzamelingen (collections) en documenten in de automatisch gegenereerde test-database opgeslagen. Je maakt een database met het commando use. Als je bijvoorbeeld een database met de naam mijndatabase wilt maken, gebruik je de opdracht:

use mijndatabase

Met de opdracht use kun je bovendien een bestaande MongoDB-database selecteren die je voor de verwerking van gegevens wilt gebruiken. Met behulp van het korte commando db controleer je welke database momenteel is geselecteerd.


MongoDB tutorial: collection aanmaken

Stap 5: een collection aanmaken

In de volgende stap creëer je een eerste collection, dus een verzamelmap voor de verschillende BSON-documenten, waarin later de gegevens worden opgeslagen. De basissyntaxis heeft altijd dit patroon:

db.createCollection(<name>, { options } )

Het commando create bevat dus de twee parameters name (naam van de collection) en options (optionele configuratieopties voor de collection). In de opties bepaal je bijvoorbeeld of documenten in de verzameling een beperkte grootte mogen hebben (capped: true) of dat de collection een beperkt aantal bytes mag bedragen (size: <number>) of een beperkt aantal documenten mag bezitten (max: <number>). Een collection met de naam mijncollectie, een begrenzing van 6.142.800 bytes en met maximaal 10.000 documenten zou je bijvoorbeeld met het volgende commando kunnen aanmaken (de spaties zijn er enkel voor de overzichtelijkheid):

db.createCollection ("mijncollectie", { capped: true,
			size: 6142800,
			max: 10000 } )

MongoDB tutorial: collection toevoegen

Stap 6: documenten aan een collection toevoegen

Nadat de verzamelmap is aangemaakt, kun je deze met documenten vullen. Daarvoor zijn er in principe drie methoden:

  • insertOne()
  • .insertMany()
  • .insert()

Je kunt per commando dus ofwel één document (.insertOne), meerdere documenten (.insertMany) of één of meerdere documenten (.insert) toevoegen. In het volgende voorbeeld tonen we een simpele databasevermelding die uit de drie gegevens (naam, leeftijd en geslacht) bestaat en die als document aan de verzamelmap mijncollectie wordt toegevoegd:

db.mijncollectie.insertOne(
{
		Naam: "Naam",
		Leeftijd: 28,
		Geslacht: "mannelijk"
	}
)

MongoDB genereert voor deze en elke volgende vermelding automatisch een voor de collection unieke ID.


MongoDB tutorial: documenten beheren

Stap 7: documenten beheren

In de laatste stap van onze MongoDB-tutorial leer je hoe je de aangemaakte documenten kunt beheren. Voordat je wijzigingen aan documenten kunt aanbrengen, moet je het desbetreffende document openen. Dit kun je doen met het commando find. Daarnaast kun je de query specificeren met de optionele parameters query filter (zoekopdrachtfilter) en projection (specificatie van het weergaveresultaat). Om bijvoorbeeld het document te openen dat je in de vorige stap hebt aangemaakt, kun je het volgende commando gebruiken:

db.mijncollectie.find( { Naam: "Naam", Leeftijd: 28 } )

Dit document kun je nu bijwerken met de functie update. Hier bepaal je de waarde die moet worden gewijzigd, selecteer je de update operator en voer je de gewijzigde waarde in. Als je bijvoorbeeld het veld leeftijd in het genoemde voorbeeld wilt aanpassen, heb je de operator $set nodig:

db.mijncollectie.update( 
{ Leeftijd: 28 },
{
	$set: { Leeftijd: 30 }
}
)

Andere update operators vind je hier. Om de documenten van een collection te wissen, gebruik je het commando remove:

db.mijncollectie.remove ()

Je kunt ook aparte documenten van een collection verwijderen door criteria zoals de ID of andere waarden te definiëren. Zo weet MongoDB om welke databasevermeldingen het gaat. Hoe nauwkeuriger je daarbij bent, des te exacter kan het databasesysteem te werk gaan. Het volgende commando wist bijvoorbeeld alle vermeldingen die de waarde 28 in het veld ‘Leeftijd’ hebben:

db.mijncollectie.remove ( { Leeftijd: 28 } )

Je kunt ook aangeven dat alleen de eerste vermelding waarop deze eigenschap van toepassing is, moet worden gewist door de zogenaamde justOne-parameter (1) toe te voegen:

db.mijncollectie.remove ( { Leeftijd: 28 }, 1 )

Meer informatie over bijvoorbeeld het gebruikersbeheer, veiligheidsinstellingen, het maken van replica’s of het verdelen van gegevens over meerdere systemen vind je in de officiële documentatie op mongodb.com en in de MongoDB-tutorial op tutorialspoint.com.

  • Gecertificeerde veiligheid

    Gecertificeerde veiligheid
  • Beste hostingbedrijf

    Beste hostingbedrijf
  • MKB Best Choice

    MKB Best Choice
  • Professionele support

    Professionele support
  • Hosted in Germany

    Hosted in Germany