En su consulta que funciona, el $elemMatch
El objeto no es otra condición de consulta, pero es el parámetro de selección de campo de salida (es decir, proyección) para find
.
Para hacer lo mismo en Mongoose, haría algo como:
PatientsModel.find({patientId: '123'}, {diet: {$elemMatch: {'status': 'A'}}}, cb)
O
PatientsModel
.where('patientId', '123')
.select({diet: {$elemMatch: {'status': 'A'}})
.exec(cb);