Quando si esegue la corrispondenza con un array, se si specifica la query in questo modo:
{ exercises: { _id: exerciseID } }
MongoDB tenta di eseguire un corrispondenza esatta nel documento
. Quindi, in questo caso, MongoDB corrisponderebbe solo ai documenti negli exercises array della forma esatta { _id: ObjectId("...") } . Perché i documenti negli exercises hanno altri campi, questo non produrrà mai una corrispondenza, anche se il _id le s sono le stesse.
Quello che vuoi fare invece è interroga un campo dei documenti nell'array . Il documento di query completo sarebbe quindi simile a questo:
{
user: user.id,
"exercises._id": exerciseID
}