När du matchar mot en array, om du anger frågan så här:
{ exercises: { _id: exerciseID } }
MongoDB försöker göra en exakt matchning på dokumentet
. Så i det här fallet skulle MongoDB bara matcha dokument i exercises
array av den exakta formen { _id: ObjectId("...") }
. Eftersom dokument i exercises
har andra fält kommer detta aldrig att ge en matchning, även om _id
s är desamma.
Det du istället vill göra är fråga ett fält av dokumenten i arrayen . Det fullständiga frågedokumentet skulle då se ut så här:
{
user: user.id,
"exercises._id": exerciseID
}