MongoDB query by sub-field?

To query by subfield in MongoDB, use dot notation to access nested document fields. This allows you to search for specific values within embedded documents using the field.subfield syntax.

Syntax

db.collection.find({ "parentField.childField": "value" })

Sample Data

Let's create sample documents with nested fields ?

db.queryBySubFieldDemo.insertMany([
    {
        "StudentPersonalDetails": {
            "StudentName": "John",
            "StudentHobby": "Photography"
        },
        "StudentScores": {
            "MathScore": 56
        }
    },
    {
        "StudentPersonalDetails": {
            "StudentName": "Chris",
            "StudentHobby": "Reading"
        },
        "StudentScores": {
            "MathScore": 97
        }
    }
]);
{
    "acknowledged": true,
    "insertedIds": [
        ObjectId("5c92c2995259fcd195499808"),
        ObjectId("5c92c2df5259fcd195499809")
    ]
}

View Sample Data

db.queryBySubFieldDemo.find().pretty();
{
    "_id": ObjectId("5c92c2995259fcd195499808"),
    "StudentPersonalDetails": {
        "StudentName": "John",
        "StudentHobby": "Photography"
    },
    "StudentScores": {
        "MathScore": 56
    }
}
{
    "_id": ObjectId("5c92c2df5259fcd195499809"),
    "StudentPersonalDetails": {
        "StudentName": "Chris",
        "StudentHobby": "Reading"
    },
    "StudentScores": {
        "MathScore": 97
    }
}

Query by Subfield

Find documents where the nested StudentName is "Chris" ?

db.queryBySubFieldDemo.find({
    "StudentPersonalDetails.StudentName": "Chris"
}).pretty();
{
    "_id": ObjectId("5c92c2df5259fcd195499809"),
    "StudentPersonalDetails": {
        "StudentName": "Chris",
        "StudentHobby": "Reading"
    },
    "StudentScores": {
        "MathScore": 97
    }
}

Multiple Subfield Queries

Query multiple nested fields simultaneously ?

db.queryBySubFieldDemo.find({
    "StudentPersonalDetails.StudentHobby": "Photography",
    "StudentScores.MathScore": { $gt: 50 }
});

Conclusion

Dot notation provides a simple way to query nested document fields in MongoDB. Use "parentField.childField" syntax to access any level of nested data for precise document matching.

Updated on: 2026-03-15T00:20:40+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements