MongoDB is een NoSQL-database. Onder de NoSQL overkoepelend plaatsen we al die databases die de SQL-taal niet gebruiken voor het opvragen van de gegevens.
Belangrijkste kenmerken van MongoDB
MongoDB is een zeer JavaScript-vriendelijke database. Het onthult een JavaScript-API die we kunnen gebruiken om databases en verzamelingen objecten te maken (genaamd documenten ).
Het is schemaloos , wat betekent dat u geen structuur voor de gegevens hoeft te definiëren voordat u deze opslaat.
In MongoDB kunt u elk object opslaan zonder dat u zich zorgen hoeft te maken over de specifieke velden waaruit dit object bestaat en hoe u ze kunt opslaan. Je vertelt MongoDB om dat object op te slaan.
Gegevens worden opgeslagen in een indeling die vergelijkbaar is met JSON, maar verbeterd om meer dan alleen basisgegevenstypen op te slaan.
Installatie
Laten we doorgaan en MongoDB installeren. Je zou een van de vele cloudproviders kunnen gebruiken die toegang bieden tot een MongoDB-instantie, maar om het te leren, zullen we het zelf installeren.
Ik gebruik een Mac, dus de installatie-instructies in deze tutorial verwijzen naar dat besturingssysteem.
Open de terminal en voer het volgende uit:
brew tap mongodb/brew
brew install mongodb-community
Dat is het.
De instructies waren niet te lang of ingewikkeld, ervan uitgaande dat je weet hoe je de terminal moet gebruiken en hoe je Homebrew moet installeren.
De installatie vertelt ons dit:
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Je kunt ervoor kiezen om MongoDB één keer te starten en het voor altijd te laten draaien als een achtergrondservice op je computer (waar ik de voorkeur aan geef), of je kunt het gewoon uitvoeren wanneer je het nodig hebt, door het laatste commando uit te voeren.
De standaardconfiguratie voor MongoDB is deze:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
Logboeken worden opgeslagen in /usr/local/var/log/mongodb/mongo.log
en de database wordt opgeslagen in /usr/local/var/mongodb
.
Standaard is er geen toegangscontrole, iedereen kan lezen en schrijven naar de database.
De Mongo Shell
De beste manier om met MongoDB te experimenteren en ermee te beginnen, is door de mongo
. uit te voeren programma, dat de MongoDB-shell start.
Je kunt nu elk commando invoeren dat Mongo begrijpt.
Maak een database
Wanneer je begint, maakt Mongo een database aan met de naam test
. Voer db
uit in de shell om u de naam van de actieve database te vertellen
Om de database te wijzigen, schrijf je gewoon use newname
en de newname
database zal onmiddellijk worden aangemaakt en de shell schakelt over naar het gebruik daarvan.
Gebruik show databases
om de beschikbare databases weer te geven:
Zoals je kunt zien, is het something
database staat niet in de lijst, alleen omdat er nog geen collectie in zit. Laten we er een maken.
Collecties
In MongoDB, een verzameling is het equivalent van een SQL-databasetabel.
U maakt een verzameling op de huidige database met behulp van de db.createCollection()
opdracht. Het eerste argument is de databasenaam en u kunt een options-object als tweede parameter doorgeven.
Zodra u dit doet, show databases
zal de nieuwe database weergeven, en show collections
zal de collectie weergeven.
U kunt ook een nieuwe verzameling maken door deze te gebruiken als een eigenschap van de db
object, en aanroepen van insert()
om een object aan de collectie toe te voegen:
db.dogs.insert({ name: 'Roger' })
Objecten in een verzameling vermelden
Gebruik de find()
. om de objecten te tonen die aan een collectie zijn toegevoegd methode:
Zoals je kunt zien is er een extra _id
eigendom voor de goede orde die we hebben toegevoegd. Dat wordt automatisch voor ons gegenereerd door MongoDB.
Voeg nu meer honden toe:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Aanroepen van db.dogs.find()
geeft ons alle items, terwijl we een parameter kunnen doorgeven om een specifiek item te filteren en op te halen, bijvoorbeeld met db.dogs.find({name: 'Roger'})
:
De find()
methode retourneert een cursor die u moet herhalen.
Er is een andere methode die handig is als je weet dat je maar één record krijgt, namelijk findOne()
, en het wordt op dezelfde manier gebruikt. Als meerdere records overeenkomen met een zoekopdracht, wordt alleen de eerste geretourneerd.
Records bijwerken
Om een record bij te werken, kunt u de update()
. gebruiken methode op een verzameling:
Records verwijderen
U kunt een record verwijderen door de remove()
. aan te roepen methode op een verzameling, waarbij een object wordt doorgegeven om het te helpen identificeren:
Geef een leeg object door om alle items uit een verzameling te verwijderen:
db.dogs.remove({})