MongoDB biedt zijn gebruikers de mogelijkheid om moderne databases te maken die gemakkelijk toegankelijk en gemanipuleerd zijn.

MongoDB is een NoSQL open-source database die beschikbaar is voor gebruik op alle besturingssystemen.

Als je op school database-ontwerp hebt geleerd, is de kans groot dat je niet hebt geleerd hoe je MongoDB moet gebruiken of dat je niet veel ervaring hebt opgedaan met NoSQL-databases. Dit is geen verrassing - tot 1998 hadden veel mensen nog niet eens van NoSQL gehoord, en pas in 2009 begonnen de NoSQL-databases grip te krijgen.

Wat is NoSQL?

De afkorting SQL staat voor "gestructureerde querytaal". SQL wordt gebruikt om wiskundige bewerkingen uit te voeren op gegevens in databases die strak zijn gestructureerd door rijen en kolommen (tabellen).

De afkorting NoSQL staat, afhankelijk van wie u het vraagt, voor 'niet alleen SQL' of 'niet-SQL'. Echter, het enige feit dat iedereen kan het erover eens zijn dat NoSQL wordt gebruikt om bewerkingen uit te voeren op gegevens die worden bewaard in databases die niet zijn gestructureerd door rijen en kolommen.

instagram viewer

Er zijn een paar NoSQL-databases, maar de naam die boven de rest uitsteekt is MongoDB. Sommige mensen denken zelfs dat MongoDB de enige database in zijn soort is.

Wat is MongoDB?

NoSQL ondersteunt vier verschillende soorten databases: document, sleutelwaardearchieven, kolomgeoriënteerd en grafiek. MongoDB is een documentdatabase omdat het gegevens opslaat in een JSON-achtig document, en net als alle databases ondersteunt het alle essentiële CRUD-bewerkingen.

Verwant: Hoe een MongoDB-database uw gegevens beter kan organiseren

Wat zijn CRUD-operaties?

De afkorting CRUD staat voor "maken, lezen, bijwerken en verwijderen". CRUD vertegenwoordigt de vier functionele basisvereisten van alle databases. Als u een database gebruikt waarin u geen records kunt maken, lezen, bijwerken of verwijderen, dan is het geen database.

MongoDB downloaden

Voordat u CRUD-bewerkingen in MongoDB kunt uitvoeren, moet u MongoDB downloaden en installeren op uw apparaat (of gebruik een beschikbare cloudversie), start de MongoDB-server, maak er verbinding mee en maak ten slotte een nieuw database.

De MongoDB-server kan worden gedownload van de officiële MongoDB-website.

De MongoDB-server uitvoeren

Voer de MongoDB-server uit vanaf de console van uw IDE.


/Users/Administrator/mongodb/bin/mongod.exe --dbpath = / Users / Administrator / mongodb-data

De bovenstaande code voert de MongoDB-server uit. De eerste helft biedt het directe pad naar het uitvoerbare MongoDB-bestand (mongod.exe) dat op uw apparaat is opgeslagen. De padnaam op uw apparaat zou anders moeten zijn, maar het doel is om het bestand mongod.exe in de bin-map te bereiken.

De tweede helft van de code (die wordt gescheiden door de spatiebalk) is een andere padnaam. Dit pad leidt naar "mongodb-data", een bestand dat u zelf moet maken. Dit bestand bevat alle gegevens die in onze database zijn aangemaakt.

Ons bestand heet "mongodb-data", maar de naam kan alles zijn waarvan u denkt dat het geschikt is.

Het uitvoeren van de bovenstaande code zou verschillende regels code moeten produceren, maar de twee regels waar u goed op moet letten, zijn hieronder te zien:


{"t": {"$ date": "2021-04-14T18: 10: 11.779-05: 00"}, "s": "I", "c": "NETWERK", "id": 23015, "ctx": "listener", "msg": "Luisteren op", "attr": {"address": "127.0.0.1"}}
{"t": {"$ date": "2021-04-14T18: 10: 11.797-05: 00"}, "s": "I", "c": "NETWERK", "id": 23016, "ctx": "listener", "msg": "Wachten op verbindingen", "attr": {"port": 27017, "ssl": "off"}}

Deze twee regels bevatten respectievelijk de localhost en de standaardpoort van de MongoDB-server. Deze twee nummers zijn nodig om later een verbinding met de MongoDB-server tot stand te brengen, zodat we onze CRUD-bewerkingen kunnen uitvoeren.

CRUD-bewerkingen uitvoeren

Nu onze MongoDB-server actief is, kunnen we er verbinding mee maken (met behulp van het juiste stuurprogramma) en beginnen met het uitvoeren van CRUD-bewerkingen. Voor dit artikel maken we een eenvoudige gebruikersdatabase waarin de namen en leeftijden van onze gebruikers worden opgeslagen.

Een gebruiker aanmaken

Er zijn twee manieren om gebruikers in een MongoDB-database in te voegen. Beide methoden lijken redelijk op elkaar, maar de methode die u moet kiezen, is afhankelijk van het aantal gebruikers dat u in een specifieke instantie wilt maken. Als het uw doel is om één gebruiker te maken, moet u de insertOne methode.

Als het echter de bedoeling is om meer dan één gebruiker tegelijk te maken, dan is het insertMany methode is een betere optie.

MongoDB insertOne Method Voorbeeld


// importeer mongodb en gebruik destructurering om de MongoClient-functie te krijgen
const {MongoClient} = vereisen ("mongodb");
// de verbindings-URL en de database waarmee we verbinding willen maken
const connectionURL = 'mongodb: //127.0.0.1: 27017';
const databaseName = 'user-manager';
// gebruikmakend van de connect-functie op de MongoClient om verbinding te maken met de MongoDB-server
MongoClient.connect (connectionURL, {useUnifiedTopology: true}, (error, client) => {
// controleer of de verbinding tot stand is gebracht
if (fout) {
return console.log ('Kon geen verbinding maken met database');
}
// toegang tot de user-manager-database
const db = client.db (databasenaam);
// voeg een gebruiker in de database in
db.collection ('gebruikers'). insertOne ({
naam: 'John Doe',
leeftijd: '28'
}, (fout, resultaat) => {
if (fout) {
return console.log ('Kan gebruiker niet aanmaken');
}
console.log (result.ops);
})
})

Voordat we gebruikers kunnen maken, moet er een verbinding tot stand worden gebracht met de MongoDB-server met behulp van het MongoDB-stuurprogramma van de taal die u gebruikt. De meest populaire driver, en degene die we in deze tutorial gebruiken, is de NodeJS-driver.

Met de eerste regel van onze code hierboven kunnen we de vernietigingsmethode gebruiken om de MongoClient-functie van onze server op te halen.

De MongoClient accepteert drie argumenten:

  • Een URL (gebruikt om verbinding te maken met de MongoDB-server)
  • Opties / instellingen (wat in dit geval de variabele 'useUnifiedTopology' op true is, om het gebruik van de nieuwe Server Discover and Monitoring-engine te vergemakkelijken)
  • Een callback-functie waaraan twee argumenten moeten doorgegeven worden (fout en client)

Binnen de callback-functie van de MongoClient-methode kunnen we eindelijk een gebruiker in onze database invoegen. Maar voordat we op dat punt komen, moeten we toegang krijgen tot de user-manager-database.

Een van de voordelen van het gebruik van MongoDB is dat het niet nodig is om expliciet een database aan te maken. Zodra een verwijzing naar een bepaalde database is gegenereerd met behulp van het "client" -argument (zoals te zien in de bovenstaande code), bent u vrij om deze te manipuleren.

De verwijzing naar de user-manager-database die we genereren, wordt opgeslagen in de variabele "db", die we zullen gebruiken om onze eerste gebruiker in de database in te voegen.

Met behulp van de "db" -referentie kunnen we een nieuwe collectie aanmaken, die we de naam "gebruiker" geven.

De insertOne methode heeft twee vereiste argumenten; het document (de gebruiker) en een callback-functie. Met de insertOne methode, kunnen we een gebruiker invoegen met de naam van Peter Davis met de leeftijd van 32, in onze database.

De callback-functie heeft twee argumenten (fout en resultaat). De resultaatfunctie bevat een ops-methode die we gebruiken om de gebruiker te zien die we zojuist in onze database hebben gemaakt. Dit levert de volgende uitvoer op in de console, nadat de bovenstaande code is uitgevoerd:


[{naam: 'Peter Davis', leeftijd: '32', _id: 60772f869475e84740003c45}]

Hoewel we bij het aanmaken van een gebruiker slechts twee velden hebben opgegeven, kunt u aan de bovenstaande uitvoer zien dat er een derde veld is gegenereerd. Dit is een ander cool ding over MongoDB; het genereert automatisch een uniek ID voor elk document dat het maakt.

Verwant: Waarin verschilt datamodellering in MongoDB?

Een gebruiker lezen in MongoDB

De twee belangrijkste methoden die worden gebruikt om documenten van een MongoDB te lezen, zijn: vind en vind een. De vind methode wordt gebruikt om meerdere documenten tegelijk te lezen en de vind een methode wordt gebruikt om één document tegelijk te lezen.

MongoDB findOne Method Voorbeeld


// importeer mongodb en gebruik destructurering om de MongoClient-methode te krijgen
const {MongoClient} = vereisen ("mongodb");
// de verbindings-URL en de database waarmee we verbinding willen maken
const connectionURL = 'mongodb: //127.0.0.1: 27017';
const databaseName = 'user-manager';
// gebruikmakend van de connect-functie op de MongoClient om verbinding te maken met de MongoDB-server
MongoClient.connect (connectionURL, {useUnifiedTopology: true}, (error, client) => {
// controleer of de verbinding tot stand is gebracht
if (fout) {
return console.log ('Kon geen verbinding maken met database');
}
// maak de user-manager-database
const db = client.db (databasenaam);
// het vinden van een gebruiker in de database
db.collection ('gebruikers'). findOne ({naam: 'Peter Davis'}, (fout, gebruiker) => {
if (fout) {
return console.log ('Kan gebruiker niet vinden');
}
console.log (gebruiker);
})
});

Het is goed om te onthouden dat u altijd verbinding moet maken met de MongoDB-server en de juiste database voordat u CRUD-bewerkingen kunt uitvoeren (zoals te zien is in ons voorbeeld hierboven).

De vind een methode heeft twee vereiste argumenten. Het eerste argument bevat de zoekcriteria; u kunt naar een document zoeken met elke variabelenaam die er uniek voor is. In ons voorbeeld hierboven gebruiken we de naam "Peter Davis".

Het tweede argument van de vind een methode is de callback-functie waaraan twee argumenten moeten doorgegeven worden; de eerste is een fout als het document niet kan worden gevonden, en de tweede is het document (dat we "gebruiker" hebben genoemd).

Het uitvoeren van de bovenstaande code levert het volgende resultaat op in de console:


{_id: 60772f869475e84740003c45, naam: 'Peter Davis', leeftijd: '32'}

Een gebruiker bijwerken in MongoDB

Er zijn twee beschikbare methoden om documenten in MongoDB bij te werken. Hoewel de structuur voor beide erg op elkaar lijkt, updateOne wordt gebruikt om één document tegelijk bij te werken en updateMany wordt gebruikt om veel documenten tegelijk bij te werken.

MongoDB updateOne Method Voorbeeld


// Werk de leeftijd van een gebruiker bij
db.collection ('gebruikers'). updateOne ({naam: "Peter Davis"},
{
$ set: {
leeftijd: '24'
}
})

Met de bovenstaande code kunnen we de leeftijd van Peter Davis updaten naar 24.

Een gebruiker verwijderen in MongoDB

Er zijn twee methoden beschikbaar om een ​​document uit MongoDB te verwijderen. De deleteOne methode wordt gebruikt om een ​​enkel document te verwijderen, en de deleteMany methode wordt gebruikt om meerdere documenten te verwijderen.

MongoDB deleteOne Method Voorbeeld


// verwijder een document
db.collection ('gebruikers'). deleteOne ({naam: 'Peter Davis'})

De verwijderbewerking is de eenvoudigste CRUD-bewerking die kan worden uitgevoerd in MongoDB. Zoals u in het bovenstaande voorbeeld kunt zien (exclusief de vereiste verbindingscode en terugbelfunctie), is er slechts één regel code nodig.

U kunt nu CRUD-bewerkingen uitvoeren in MongoDB

Nu heb je basiskennis van MongoDB en weet je wat NoSQL betekent. U weet ook waar de afkorting CRUD voor staat en waarom deze bewerkingen essentiële eigenschappen zijn van elke database.

Dit artikel biedt u alle tools die nodig zijn om de vier basis CRUD-bewerkingen in MongoDB uit te voeren. Nu u bent uitgerust met de knowhow van CRUD-bewerkingen, kunt u beginnen te leren hoe u uw gegevens het beste kunt modelleren met MongoDB.

Beeldcredits: Alexander Sosluev /WiKiMedia Commons

E-mail
Waarin verschilt datamodellering in MongoDB?

Overweegt u een andere benadering van databases? Dit is hoe gegevensmodellering werkt in MongoDB.

Lees Volgende

Gerelateerde onderwerpen
  • Programmeren
  • Zelfstudies over codering
  • database
Over de auteur
Kadeisha Kean (9 Artikelen gepubliceerd)

Kadeisha Kean is een full-stack softwareontwikkelaar en technisch / technologisch schrijver. Ze heeft het onderscheidende vermogen om enkele van de meest complexe technologische concepten te vereenvoudigen; materiaal produceren dat gemakkelijk kan worden begrepen door elke beginner in technologie. Ze is gepassioneerd door schrijven, interessante software ontwikkelen en de wereld rondreizen (via documentaires).

Meer van Kadeisha Kean

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.