Za pomocą MongoDB, w jaki sposób zaktualizować poddokument tablicy podrzędnej, gdy pozycja elementu jest nieznana?
Próbuję zaktualizować poddokument tablicy podrzędnej, ale nie mogę liczyć, że pozycja elementu w tablicy będzie zawsze taka sama, więc jak ją zaktualizować.
Na przykład, oto mój dokument, chcę tylko wcisnąć inny obiekt znacznika (klucz / val) natags
tablicareal_pagenum
: 1 z pdf z_id
zObjectId("50634e26dc7c22c64d00000a")
{
"_id" : ObjectId("503b83dfad79cc8d26000004"),
"pdfs" : [
{
"_id" : ObjectId("50634e26dc7c22c64d00000a"),
"pages" : [
{
"real_pagenum" : 1,
"_id" : ObjectId("50634e74dc7c22c64d00002b"),
"tags" : [
{
"key" : "Item",
"val" : "foo"
},
{
"key" : "Item",
"val" : "bar"
}
]
},
{
"real_pagenum" : 2,
"_id" : ObjectId("50634e74dc7c22c64d00002b")
}
],
"title" : "PDF3",
"version" : 3
}
],
}
Powtarzam, celem jest najpierw skierowanie prawidłowego pliku PDF przez_id
, a następnie prawa strona wgreal_pagenum
i przejdź do strony tego pliku PDFtags
szyk.
Próbowałem:
db.projects.update({'pdfs.pdf_id':ObjectId("50634e25dc7c22c64d000007")},
{$push:{'pages.$.tags':{'key':'foo','val':'bar'}}},false,false);
ale to nie osiąga poziomu, którego potrzebuję. Czytałem, że mogę użyćkombinacja operatora pozycyjnego z rzeczywistą pozycją elementu, ale znowu nie mogę zagwarantować ani poznać pozycji elementu.