Při porovnávání s polem, pokud zadáte dotaz takto:
{ exercises: { _id: exerciseID } }
MongoDB se pokouší provést přesná shoda v dokumentu
. Takže v tomto případě by MongoDB odpovídal pouze dokumentům v exercises pole v přesném tvaru { _id: ObjectId("...") } . Protože dokumenty v exercises mít jiná pole, nikdy to nevyvolá shodu, i když _id s jsou stejné.
Místo toho chcete udělat dotaz na pole dokumentů v poli . Úplný dokument dotazu by pak vypadal takto:
{
user: user.id,
"exercises._id": exerciseID
}