Mongoose :Find and filter nested array
You can use aggregate
to get it in an easy way like this
ListModel.aggregate( { $match: {_id: ObjectId("57e6bcab6b383120f0395aed")}}, { $unwind: '$recipients'}, { $match: {'recipients.status':1}})
Output
{ "_id" : ObjectId("57e6bcab6b383120f0395aed"), "name" : "Emailing listname", "subject" : "List subject", "recipients" : { "uid" : "57e93266c3c0b1dc1625986f", "status" : 1 }}
To understand aggregation in details see the docs here