WebOntwikkeling 2024
DigitAP
  • Introductie
  • Tooling
    • Devcontainers
    • Git
    • Terminal en bash
  • NodeJS + TypeScript
    • Wat is NodeJS?
    • Waarom TypeScript?
    • Nieuw project
    • Input lezen
    • Type Systeem
      • Basic types
      • Arrays
      • Interfaces
      • Functions
    • Exceptions
    • Modules
    • Asynchroon Programmeren
      • Promises
      • Async/Await
      • Fetch
      • Extra voorbeelden
  • Express.js
    • Wat is een backend framework?
    • Basis
    • Nodemon
    • Statische Bestanden
    • EJS
    • Request
      • GET Request
      • POST Request
      • Multi-part form data
    • Response
    • Router
    • Middleware
    • Deployment
  • MongoDB
    • Wat is MongoDB?
    • MongoDB driver
    • Insert
    • Find
    • Limit & Sort
    • Query Operators
    • Update
    • Delete
    • Text Search
    • Gebruik in Express.js
      • CRUD
  • Security & Testing
    • Environment Variables
    • Cookies
    • Hashing & Encryptie
    • Sessions
      • Session Based Login
    • JWT Tokens
      • JWT NPM package
      • Tokens veilig opslaan
      • Token Based Login
    • Testing
  • Labos
    • 1. Tooling
    • 2. Basis
      • Hello Name
      • BMI Calculator
      • BMI Calculator Multi
      • Interest Calculator
      • Uren en Minuten
      • Wisselgeld
      • Name from Email
      • Text Box
    • 3. Arrays
      • Som van getallen
      • Puntenboek
      • Rot13
      • Pokemon Team
      • Todo List String
      • Tick Tac Toe
    • 4. Interfaces & functies
      • Interfaces
        • Recepten
        • Movies Objects
        • Todo List Objects
      • Functies
        • Math Fun
        • Short Notation
        • Array Sum
        • Movies Functions
        • Filter Numbers
        • At Least Two
    • 5. Async & fetch
      • Fake Fetch
      • Promise All
      • Slow Sum
      • Todo List Fetch
      • Cocktails Promise All
      • Bitcoin API
      • Joke API
      • School API
      • Cocktails API
      • Unix Timestamp API
    • 6. Modules en NPM Packages
      • Math Module
      • Export Interfaces
      • Cowsay Module
      • Cat GPT
      • Rainbow Chalk
    • 7. Express
      • Hello Express
      • DadJoke Express
      • Bitcoin current
    • 8. EJS + Static
      • Hello Express EJS
      • Cat Static
      • Maaltafels
      • Newspaper
    • 9. Get Request
      • Hello Query
      • Math Service
      • Newspaper Route
      • Newspaper Search
      • Steam
    • 10. Post Request
      • Pet Shelter
      • Redirect Form
      • Contact Form
    • 11. Router en Middleware
      • Router Combi
      • Utility Middleware
      • Rate Limiter
    • 12. Herhaling
      • Twitter
      • Word Guess
    • 13. Mongo Basics
      • Guestbook
      • MoviesDB
      • Pokemon Team
    • 14. Mongo Queries
      • Pet Shelter
      • Games DB
    • 15. Mongo + Express
      • Pet Shelter Express
      • Guestbook Express
      • Pokemon Team Express
    • 16. CRUD
      • Users CRUD
      • Pokedex
    • 17. Session & Cookies
      • Shopping Cookie
      • View Counter Cookies
      • View Counter Sessions
    • 18. Session based login
      • Login Express
      • Pokedex Express Sessions
    • 19. Token based login
      • JWT Sign
      • Login Express JWT
    • 20. Testing
      • Math Test
      • String Test
      • Math Express Test
      • Form Express Test
      • Pet Shelter Express Test
    • 21. Herhaling
      • Youtube Favorites
      • Beerster
    • Extra oefeningen
      • DNA Match
      • View Counter
      • Hogwarts Express CRUD
  • Project
    • Voorbereiding (devcontainer + github)
    • Semester 2
      • Milestone 1 - Terminal App
      • Milestone 2 - Express
      • Milestone 3 - MongoDB
      • Milestone 4 - Security
Powered by GitBook
On this page
  • Sort
  • Taalafhankelijke sortering
  • Limit (en Skip)
Export as PDF
  1. MongoDB

Limit & Sort

In de onderstaande deel van de cursus gaan we dieper in op de limit en sort methodes van de MongoDB driver. We gaan er vanuit dat we een collection hebben met de naam students.

const collection : Collection<Student> = client.db("school").collection<Student>("students");

Zo voorkomen we dat we altijd deze regel code moeten herhalen.

Sort

Je kan de sort methode gebruiken om de resultaten van een query te sorteren. Je moet eerst een find query uitvoeren en dan de sort methode aanroepen. Je kan deze gewoon achter de find methode aanroepen. Je kan de richting van de sortering aangeven door een object mee te geven. Als je een 1 meegeeft, dan sorteert hij oplopend. Als je een -1 meegeeft, dan sorteert hij aflopend.

const result = await collection.find({}).sort({ name: 1 }).toArray();

Je kan ook meerdere velden meegeven om op te sorteren. Als je meerdere velden meegeeft, dan sorteert hij eerst op het eerste veld. Als er meerdere documenten zijn met dezelfde waarde voor het eerste veld, dan sorteert hij op het tweede veld.

const result = await collection.find({}).sort({ name: 1, age: -1 }).toArray();

Taalafhankelijke sortering

Je kan ook sorteren op basis van de taal van de gebruiker. Dit is handig als je bijvoorbeeld een applicatie hebt die in meerdere talen beschikbaar is. Je kan dit doen door de collation methode aan te roepen.

const result = await collection.find({}).sort({ name: 1 }).collation({ locale: "en" }).toArray();

In dit voorbeeld sorteren we op de naam van de student. We geven ook de locale mee als "en" (Engels). Dit zorgt ervoor dat de sortering correct gebeurt voor de Engelse taal. Dit wil zeggen dat de sortering rekening houdt met speciale tekens en hoofdletters. Over het algemeen wil je dat de sortering hoofdlettergevoelig is.

Zonder de collation methode zou de sortering er als volgt uitzien:

Apple
Grapefruit
banana

Met de collation methode ziet de sortering er als volgt uit:

Apple
banana
Grapefruit

Limit (en Skip)

Je kan de limit methode gebruiken om het aantal resultaten te beperken. Je moet eerst een find query uitvoeren en dan de limit methode aanroepen. Je kan deze gewoon achter de find methode aanroepen.

const result = await collection.find({}).limit(5).toArray();

Vaak wordt de limit methode gebruikt in combinatie met de skip methode. De skip methode slaat een aantal resultaten over.

const result = await collection.find({}).skip(5).limit(5).toArray();

Deze query zal alle documenten van de collectie ophalen, maar de eerste 5 overslaan. Daarna zal hij de volgende 5 documenten ophalen. Dit is handig om te gebruiken in combinatie met paginering.

PreviousFindNextQuery Operators

Last updated 1 year ago