I have a collection with documents that look like this:
\"awards\" : {
\"oscars\" : [
{\"award\": \"bestAnimatedFeature\", \"result\": \"won\"},
According to the MongoDB Query documentation, you can match a field in an embedded document within an array by concatenating its name to the name of the array like so:
db.my_collection.find(
{
'awards.oscars.award': 'bestPicture',
$or: [
{ 'awards.oscars.result': 'won' },
{ 'awards.oscars.result': 'nominated' }
]
}
)