Dans votre requête qui fonctionne, le $elemMatch
objet n'est pas une autre condition de requête, mais est le paramètre de sélection de champ de sortie (c'est-à-dire la projection) à find
.
Pour faire la même chose dans Mongoose, vous feriez quelque chose comme :
PatientsModel.find({patientId: '123'}, {diet: {$elemMatch: {'status': 'A'}}}, cb)
OU
PatientsModel
.where('patientId', '123')
.select({diet: {$elemMatch: {'status': 'A'}})
.exec(cb);