Når du matcher mod et array, hvis du angiver forespørgslen sådan her:
{ exercises: { _id: exerciseID } }
MongoDB forsøger at lave en nøjagtig match på dokumentet
. Så i dette tilfælde ville MongoDB kun matche dokumenter i exercises
matrix med den nøjagtige form { _id: ObjectId("...") }
. Fordi dokumenter i exercises
har andre felter, vil dette aldrig give et match, selvom _id
s er de samme.
Det du vil gøre i stedet er forespørg på et felt af dokumenterne i arrayet . Det komplette forespørgselsdokument ville så se sådan ud:
{
user: user.id,
"exercises._id": exerciseID
}