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.

questionAnswers(3)

yourAnswerToTheQuestion