Khi đối sánh với một mảng, nếu bạn chỉ định truy vấn như sau:
{ exercises: { _id: exerciseID } }
MongoDB cố gắng thực hiện khớp chính xác trên tài liệu
. Vì vậy, trong trường hợp này, MongoDB sẽ chỉ khớp với các tài liệu trong exercises
mảng có dạng chính xác { _id: ObjectId("...") }
. Bởi vì các tài liệu trong exercises
có các trường khác, trường này sẽ không bao giờ kết hợp, ngay cả khi _id
đều giống nhau.
Thay vào đó, điều bạn muốn làm là truy vấn trường tài liệu trong mảng . Tài liệu truy vấn hoàn chỉnh sau đó sẽ trông giống như sau:
{
user: user.id,
"exercises._id": exerciseID
}