Python MongoDB Limit
In MongoDB, you can limit the number of documents returned by a query using the limit() method. This is useful when you only want a specific number of documents from a collection.
Syntax:
collection.find(query).limit(number)
query: The filter condition to find the documents (optional).number: The maximum number of documents to return.
Example: Limiting Query Results in MongoDB Using Python (PyMongo)
Step 1: Connect to MongoDB and Select a Database and Collection
import pymongo
# Connect to MongoDB
client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]
Step 2: Insert Sample Data (Optional)
# Insert sample documents into the collection (if not already inserted)
mycol.insert_many([
{ "name": "John", "age": 28, "address": "123 Elm Street" },
{ "name": "Amy", "age": 32, "address": "456 Oak Street" },
{ "name": "Mark", "age": 25, "address": "789 Maple Avenue" },
{ "name": "Sara", "age": 24, "address": "101 Pine Road" },
{ "name": "Tina", "age": 29, "address": "345 Birch Lane" }
])
1. Limiting the Number of Results Returned
To return only a limited number of documents, use the limit() method.
# Limit the query results to 3 documents
results = mycol.find().limit(3)
# Print the documents
for doc in results:
print(doc)
2. Limiting Results with a Query
You can also combine the limit() method with a query to first filter the documents and then limit the number of results.
For example, to find all documents where age is greater than 25 and return only 2 results:
# Query: Find documents where 'age' is greater than 25 and limit to 2 results
query = { "age": { "$gt": 25 } }
results = mycol.find(query).limit(2)
# Print the documents
for doc in results:
print(doc)
Full Example of Limiting Query Results
import pymongo
# Connect to MongoDB
client = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = client["mydatabase"]
mycol = mydb["customers"]
# Insert some sample documents (if not already inserted)
mycol.insert_many([
{ "name": "John", "age": 28, "address": "123 Elm Street" },
{ "name": "Amy", "age": 32, "address": "456 Oak Street" },
{ "name": "Mark", "age": 25, "address": "789 Maple Avenue" },
{ "name": "Sara", "age": 24, "address": "101 Pine Road" },
{ "name": "Tina", "age": 29, "address": "345 Birch Lane" }
])
# Limit the results to 3 documents
results = mycol.find().limit(3)
# Print the limited results
for doc in results:
print(doc)
# Limit results with a query (find documents where 'age' is greater than 25, limit to 2)
query = { "age": { "$gt": 25 } }
results = mycol.find(query).limit(2)
# Print the documents
for doc in results:
print(doc)
Output:
{ 'name': 'John', 'age': 28, 'address': '123 Elm Street' }
{ 'name': 'Amy', 'age': 32, 'address': '456 Oak Street' }
{ 'name': 'Mark', 'age': 25, 'address': '789 Maple Avenue' }
{ 'name': 'John', 'age': 28, 'address': '123 Elm Street' }
{ 'name': 'Amy', 'age': 32, 'address': '456 Oak Street' }
Summary:
limit()is used to specify the maximum number of documents returned by a query.- You can use it with or without a query to control how many results are returned from a collection.