Als u bij het matchen met een array de query als volgt specificeert:
{ exercises: { _id: exerciseID } }
MongoDB probeert een exacte overeenkomst op het document
. Dus in dit geval zou MongoDB alleen documenten matchen in de exercises
array van de exacte vorm { _id: ObjectId("...") }
. Omdat documenten in de exercises
andere velden heeft, zal dit nooit een overeenkomst opleveren, zelfs niet als de _id
s zijn hetzelfde.
Wat u in plaats daarvan wilt doen, is een veld van de documenten in de array opvragen . Het volledige zoekdocument ziet er dan als volgt uit:
{
user: user.id,
"exercises._id": exerciseID
}