MongoDB - Limit the Results of a Query
Return only the number of documents you need with the limit() method.
In MongoDB, you can use the limit() method to specify a maximum number of documents for a cursor to return.
When you query a collection using the db.collection.find() method, you can append limit() to specify the limit.
Example
First let's do a query without a limit (so we can see how many documents are returned):
Without a Limit
Result:
{ "_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" }
With a Limit
OK, so let's limit the results to say, 3 documents:
Result:
{ "_id" : ObjectId("5780fbf948ef8c6b3ffb0149"), "artistname" : "The Tea Party" }
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
In our query, we're using the $exists operator to check for the existence of a field. In this case we exclude those artists that have an albums field in the document.
This could easily be switched around to { $exists: true } to include only those artists with an albums field.
Add the skip() Method
You can use the skip() method to skip to a document within the cursor. In other words, you can control where MongoDB begins returning the results.
Result:
{ "_id" : ObjectId("5781c9ac48ef8c6b3ffb014a"), "artistname" : "Jorn Lande" }
{ "_id" : 1, "artistname" : "AC/DC" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
So you can see that it skipped the first result, but still returned 3 documents.
Note that skip() can be used on any query (not just ones with limit()).
For example, the query at the top of this page returned 6 documents. If we add skip(3), we will end up with the last 3 documents:
Result:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" }
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }