Sudhesh Gnanasekaran
Sudhesh Gnanasekaran

Reputation: 401

Mongo Projection filter with subarray

{
"_id" : "000f7ef7-b4d2-4b3a-a33a-ce4f5a6dc594",
"ClientCode" : "67018",
"ClientName" : "test06",    
"Addresses" : [ 
    {            
        "AddressTypeCode" : "1",             
        "EmailAddress" : "[email protected]"
    }, 
    {            
        "AddressTypeCode" : "2",                         
        "EmailAddress" : "[email protected]"
    }
    , 
    {            
        "AddressTypeCode" : "3",            
        "EmailAddress" : "[email protected]"
    }
]

}

I would like to get the followings results using mongo projection with filter condition for the subarray Address with AddressTypeCode equals 1 and get the email address.

{  "ClientCode" : "67018",  "ClientName" : "test06",  "EmailAddress" :[email protected]"}

Upvotes: 0

Views: 73

Answers (1)

Scott E. Frank
Scott E. Frank

Reputation: 21

I would first do an unwind:

{ $unwind : "$Addresses" }

Then do a match:

{ $match : { "Addresses.AddressTypeCode" : "1" } }

Then do the projection:

{ $project : { "ClientCode" : 1, "ClientName" : 1, "EmailAddress" : "$Addresses.AddressTypeCode" } }

Upvotes: 0

Related Questions