Skip to content

📰 Topic | Mongoose by Naomi

Naomi Cheung edited this page Mar 30, 2021 · 6 revisions

Mongoose

Mongoose is een ODM (Object Data Modeling) die je kunt gebruiken om het werken met MongoDB makkelijk te maken. Het zorgt ervoor dat er makkelijker wordt vertaald van documenten in een MongoDB database naar objecten in het programma.

Voordelen van mongoose

  1. Mongoose biedt een abstracte laag bovenop MongoDB zodat je geen collections hoeft te gebruiken
  2. Models in Mongoose voeren het grootste deel van het werk uit van het instellen van standaardwaarden voor documenteigenschappen en het valideren van gegevens
  3. Functies kunnen worden gekoppeld aan Models in Mongoose. Dit zorgt voor naadloze integratie van nieuwe functionaliteiten
  4. Code wordt flexiber en leesbaarder omdat query's functieketting worden gebruikt in plaats van ingesloten geheugensteuntjes

Nadeel van Mongoose

Het grootste nadeel van Mongoose is dat abstractie ten koste gaat van de prestaties in vergelijking met die van native MongoDB

Het concept van Mongoose

Mongoose maakt gebruikt van 2 dingen, schema en een model voor het opzetten.

Model

Een model is een wrapper voor het schema en het zorgt voor een interface voor de database.

Alle database bewerkingen die met Mongoose op een document worden uitgevoerd, moeten naar een model verwijzen.

Schema

Het schema definieert de structuur van het document. Dit wordt gedaan door attributen zoals;

  • Data types
  • Vereiste
  • Uniekheid, wat betekent dat de database alleen de waarde laat zien

Stappenplan

  1. Refereren naar Mongoose
  2. Het schema definiëren
  3. Het model exporteren
Schermafbeelding 2021-03-20 om 17 21 12

Wat is er anders aan MongoDB dan Mongoose qua code?

MongoDB

Om data uit de database te halen, gebruik je db.collection('userdata')

Schermafbeelding 2021-03-20 om 17 15 49

Mongoose

Model en schema maken

Schermafbeelding 2021-03-20 om 17 21 12

Om data uit de database te halen hoef je nu alleen User te gebruiken.

Schermafbeelding 2021-03-30 om 22 56 04

Reflectie

Wat ik zelf fijn vind aan Mongoose is dat ik geen db.collection hoeft te gebruiken om data op te halen. Ik typ nu korter en dus efficiënter. Ik dacht dat het moeilijk zou zijn om dit te leren, maar eigenlijk was het makkelijker dan ik had gedacht. Mongoose is netjes en zorgt voor helderheid in code.

Bronnen