Ao fazer a correspondência com uma matriz, se você especificar a consulta assim:
{ exercises: { _id: exerciseID } }
O MongoDB tenta fazer um correspondência exata no documento . Portanto, neste caso, o MongoDB corresponderia apenas a documentos nos
exercises
array da forma exata { _id: ObjectId("...") }
. Como os documentos nos exercises
tiver outros campos, isso nunca produzirá uma correspondência, mesmo se o _id
s são iguais. O que você quer fazer é consultar um campo dos documentos na matriz . O documento de consulta completo ficaria assim:
{
user: user.id,
"exercises._id": exerciseID
}