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:

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

Sample data

**Explanation:

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

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

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)

`