Ve vašem dotazu, který funguje, je $elemMatch
objekt není další podmínkou dotazu, ale je to parametr výběru výstupního pole (tj. projekce), který má find
.
Chcete-li udělat totéž v Mongoose, udělali byste něco jako:
PatientsModel.find({patientId: '123'}, {diet: {$elemMatch: {'status': 'A'}}}, cb)
NEBO
PatientsModel
.where('patientId', '123')
.select({diet: {$elemMatch: {'status': 'A'}})
.exec(cb);