Tôi có một tài liệu trong bộ sưu tập MongoDB như thế này:Cập nhật một mục trong một mảng đó là trong một mảng
{
sessions : [
{
issues : [
{
id : "6e184c73-2926-46e9-a6fd-357b55986a28",
text : "some text"
},
{
id : "588f4547-3169-4c39-ab94-8c77a02a1774",
text : "other text"
}
]
}
]
}
Và tôi muốn cập nhật vấn đề này với id 588f4547-3169-4c39-ab94 -8c77a02a1774 trong phiên đầu tiên.
Vấn đề là tôi chỉ biết rằng đó là phiên đầu tiên và id vấn đề
Vì vậy, tôi cố gắng một cái gì đó như thế này (KHÔNG chỉ số về vấn đề này!):
db.mycollection.update({ "sessions.0.issues.id" : "588f4547-3169-4c39-ab94-8c77a02a1774"},
{ $set: { "sessions.0.issues.$.text" : "a new text" }})
Nhưng tôi có kết quả sau:
WriteResult({
"nMatched" : 0,
"nUpserted" : 0,
"nModified" : 0,
"writeError" : {
"code" : 16837,
"errmsg" : "The positional operator did not find the match needed from the query. Unexpanded update: sessions.0.issues.$.text"
}
Tôi làm cách nào để thực hiện việc này?
Cảm ơn bạn đã trợ giúp.
tôi không nghĩ rằng "sessions.0.issues.Id" sẽ hoạt động vì các vấn đề lại là một mảng – Sikorski
Nó hoạt động khi tôi tìm kiếm, nó trả về tài liệu. –