Python MongoDB - find_one Query
Last Updated :
02 Jul, 2025
Improve
In PyMongo, the find_one() method is used to retrieve a single document from a MongoDB collection that matches the given filter. If multiple documents match, only the first match (based on insertion order) is returned.
Syntax
collection.find_one(filter, projection=None)
Parameters:
- filter: (dict) Criteria to search for a document (e.g., { "name": "Amit" }).
- projection (optional): (dict) Fields to include or exclude (e.g., { "_id": 0, "name": 1 }).
Here is our sample data.
from pymongo import MongoClient
c = MongoClient("mongodb://localhost:27017/")
db = c['userDB']
col = db['users']
data = [
{ "_id": 1, "name": "Amit", "age": 25, "city": "Delhi" },
{ "_id": 2, "name": "Drew", "age": 30, "city": "Mumbai" },
{ "_id": 3, "name": "Cody", "age": 28, "city": "Chennai" }
]
col.delete_many({})
col.insert_many(data)
print("Data inserted.")
Output

Explanation:
- MongoClient() connects to the local MongoDB server and selects the userDB.users collection.
- delete_many({}) clears any existing documents in the collection to avoid duplicate entries.
- insert_many(data) loads the sample user documents into the users collection.
Examples
Example 1: Find by name
from pymongo import MongoClient
c = MongoClient("mongodb://localhost:27017/")
db = c['userDB']
col = db['users']
res = col.find_one({ "name": "Amit" })
print(res)
Output

Explanation: Finds the first document where name is "Amit".
Example 2: find_one and exclude _id field
from pymongo import MongoClient
c = MongoClient("mongodb://localhost:27017/")
db = c['userDB']
col = db['users']
res = col.find_one({ "name": "Drew" }, { "_id": 0 })
print(res)
Output

Explanation: Finds the document where name is "Drew" and excludes the _id field from the result using projection.
Example 3: Find by "age" condition
from pymongo import MongoClient
c = MongoClient("mongodb://localhost:27017/")
db = c['userDB']
col = db['users']
res = col.find_one({ "age": { "$gt": 26 } })
print(res)
Output

Explanation: Finds the first document where age is greater than 26 using the $gt (greater than) operator.
Related Articles