Podczas dopasowywania do tablicy, jeśli określisz zapytanie w ten sposób:
{ exercises: { _id: exerciseID } }
MongoDB próbuje wykonać dokładne dopasowanie w dokumencie
. Więc w tym przypadku MongoDB dopasuje tylko dokumenty w exercises tablica dokładnie w postaci { _id: ObjectId("...") } . Ponieważ dokumenty w exercises mają inne pola, nigdy nie da dopasowania, nawet jeśli _id s są takie same.
Zamiast tego chcesz zrobić zapytanie o pole dokumentów w tablicy . Kompletny dokument zapytania wyglądałby wtedy tak:
{
user: user.id,
"exercises._id": exerciseID
}