Retourneer alleen het aantal documenten dat u nodig heeft met de limit()
methode.
In MongoDB kunt u de limit()
. gebruiken methode om een maximum aantal documenten op te geven dat een cursor moet retourneren.
Wanneer u een verzameling opvraagt met behulp van de db.collection.find()
methode, kunt u limit()
. toevoegen om de limiet op te geven.
Voorbeeld
Laten we eerst een zoekopdracht uitvoeren zonder een limiet (zodat we kunnen zien hoeveel documenten worden geretourneerd):
Zonder limiet
db.artists.find( { albums: { $exists: false }} )
Resultaat:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
Met een limiet
OK, dus laten we de resultaten beperken tot 3 documenten:
db.artists.find( { albums: { $exists: false }} ).limit(3)
Resultaat:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" } { "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" }
In onze zoekopdracht gebruiken we de $exists
operator om te controleren op het bestaan van een veld. In dit geval sluiten we die artiesten uit die een
albums
. hebben veld in het document.
Dit kan gemakkelijk worden omgeschakeld naar { $exists: true }
om alleen die artiesten op te nemen met een
albums
veld.
Voeg de skip()
toe Methode
U kunt de skip()
. gebruiken methode om naar een document binnen de cursor te gaan. Met andere woorden, u kunt bepalen waar MongoDB begint met het retourneren van de resultaten.
db.artists.find( { albums: { $exists: false }} ).limit(3).skip(1)
Resultaat:
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" } { "_id" : 1, "artistname" : "AC/DC" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
U kunt dus zien dat het het eerste resultaat heeft overgeslagen, maar toch 3 documenten heeft geretourneerd.
Merk op dat skip()
kan op elke zoekopdracht worden gebruikt (niet alleen die met limit()
).
De zoekopdracht bovenaan deze pagina leverde bijvoorbeeld 6 documenten op. Als we skip(3)
. toevoegen , we eindigen met de laatste 3 documenten:
db.artists.find( { albums: { $exists: false }} ).skip(3)
Resultaat:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }