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" }