MongoDB find() to operate on recursive search?

Use dot notation with find() to perform recursive search within nested arrays and embedded documents. This allows querying deep fields without complex operators.

Syntax

db.collection.find({"arrayName.fieldName": value});
db.collection.find({"nestedDocument.field": value});

Sample Data

db.findOperationDemo.insertMany([
    {
        "ClientDetails": [
            {"ClientId": 101, "ClientName": "Chris"},
            {"ClientId": 102, "ClientName": "Robert"}
        ]
    },
    {
        "ClientDetails": [
            {"ClientId": 110, "ClientName": "David"},
            {"ClientId": 112, "ClientName": "Mike"}
        ]
    }
]);
{
    "acknowledged": true,
    "insertedIds": [
        ObjectId("5cd9a118b50a6c6dd317ad99"),
        ObjectId("5cd9a12fb50a6c6dd317ad9a")
    ]
}

Display All Documents

db.findOperationDemo.find().pretty();
{
    "_id": ObjectId("5cd9a118b50a6c6dd317ad99"),
    "ClientDetails": [
        {
            "ClientId": 101,
            "ClientName": "Chris"
        },
        {
            "ClientId": 102,
            "ClientName": "Robert"
        }
    ]
}
{
    "_id": ObjectId("5cd9a12fb50a6c6dd317ad9a"),
    "ClientDetails": [
        {
            "ClientId": 110,
            "ClientName": "David"
        },
        {
            "ClientId": 112,
            "ClientName": "Mike"
        }
    ]
}

Recursive Search Using Dot Notation

Search for documents containing a specific ClientId within the nested array ?

db.findOperationDemo.find({"ClientDetails.ClientId": 110});
{
    "_id": ObjectId("5cd9a12fb50a6c6dd317ad9a"),
    "ClientDetails": [
        {"ClientId": 110, "ClientName": "David"},
        {"ClientId": 112, "ClientName": "Mike"}
    ]
}

Search by Client Name

db.findOperationDemo.find({"ClientDetails.ClientName": "Chris"});
{
    "_id": ObjectId("5cd9a118b50a6c6dd317ad99"),
    "ClientDetails": [
        {"ClientId": 101, "ClientName": "Chris"},
        {"ClientId": 102, "ClientName": "Robert"}
    ]
}

Conclusion

Dot notation enables efficient recursive searching in MongoDB by directly accessing nested fields within arrays and embedded documents. Use "arrayName.fieldName" pattern to query deep structures without complex aggregation pipelines.

Updated on: 2026-03-15T01:22:21+05:30

905 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements