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
}