Find result within array of objects and match email address field in MongoDB?

To find results within array of objects and match specific field values in MongoDB, use dot notation to query nested array fields. This allows you to search for documents containing array elements with matching criteria.

Syntax

db.collection.find(
    {
        "arrayField.field1": "value1",
        "arrayField.field2": "value2"
    },
    { "arrayField.field1": 1 }
);

Sample Data

db.demo144.insertMany([
    {
        "EmployeeDetails": [
            {"EmployeeName": "Chris", "EmployeeEmail": "Chris12@gmail.com"},
            {"EmployeeName": "Bob", "EmployeeEmail": "bo22@gmail.com"}
        ]
    },
    {
        "EmployeeDetails": [
            {"EmployeeName": "David", "EmployeeEmail": "david@gmail.com"},
            {"EmployeeName": "Carol", "EmployeeEmail": "Carol@gmail.com"}
        ]
    }
]);
{
    "acknowledged": true,
    "insertedIds": [
        ObjectId("5e32f1d8fdf09dd6d08539b9"),
        ObjectId("5e32f1f5fdf09dd6d08539ba")
    ]
}

View Sample Data

db.demo144.find();
{
    "_id": ObjectId("5e32f1d8fdf09dd6d08539b9"), 
    "EmployeeDetails": [
        { "EmployeeName": "Chris", "EmployeeEmail": "Chris12@gmail.com" },
        { "EmployeeName": "Bob", "EmployeeEmail": "bo22@gmail.com" }
    ]
}
{
    "_id": ObjectId("5e32f1f5fdf09dd6d08539ba"), 
    "EmployeeDetails": [
        { "EmployeeName": "David", "EmployeeEmail": "david@gmail.com" },
        { "EmployeeName": "Carol", "EmployeeEmail": "Carol@gmail.com" }
    ]
}

Example: Match Email Address Field

Find documents where any array element matches both name and email criteria ?

db.demo144.find(
    {
        "EmployeeDetails.EmployeeName": "David",
        "EmployeeDetails.EmployeeEmail": "david@gmail.com"
    },
    { "EmployeeDetails.EmployeeName": 1 }
);
{ 
    "_id": ObjectId("5e32f1f5fdf09dd6d08539ba"), 
    "EmployeeDetails": [
        { "EmployeeName": "David" }, 
        { "EmployeeName": "Carol" }
    ] 
}

Key Points

  • Dot notation queries check if any array element matches the criteria.
  • Multiple field conditions don't guarantee they match the same array element.
  • Use $elemMatch to ensure all conditions match within a single array element.

Conclusion

Use dot notation with array field names to query nested objects in MongoDB arrays. This approach finds documents containing array elements that match your specified field criteria.

Updated on: 2026-03-15T02:14:52+05:30

340 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements