Python MongoDB find_one Query (original) (raw)
Last Updated : 2 Jul, 2025
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.
Python `
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

Sample data
**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
Python `
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
Python `
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

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