Как добавить документ в документ списка встроенных моделей 2-го уровня в Django и mongoengine

В настоящее время я сталкиваюсь с некоторыми проблемами, пытаясь добавить объект встроенной модели в список, который также находится внутри списка встроенных моделей. Я использую Django nonrel и mongoengine с djangotoolbox. Итак, это моя коллекция монго:

{
"_id" : ObjectId("517fe872e138235e2cae9e8c"),
"campaigns" : [
    {
        "payout" : 0.7,
        "landing_page" : [ ],
        "name" : "A prueba de todo",
        "rotate_urls" : null,
        "_module" : "setup.models",
        "_model" : "Campaigns",
        "cloaking" : true,
        "rotate_urls_status" : false,
        "affiliate_url" : "www.google.com/[[subid]][[c1]][[c2]][[c3]][[c4]]"
    },
    {
        "payout" : 0.7,
        "landing_page" : [ ],
        "name" : "DOS",
        "rotate_urls" : null,
        "_module" : "setup.models",
        "_model" : "Campaigns",
        "cloaking" : true,
        "rotate_urls_status" : false,
        "affiliate_url" : "www.google.com/[[subid]][[c1]][[c2]][[c3]][[c4]]"
    }
],
"category_name" : "videos"}

Я пытался в течение 8 дней добавить новый документ внутри "landing_page", который находится в коллекции с category_name равным "videos" и который содержит документ кампании с именем "DOS". Итак, я пытаюсь добавить новый документ внутри коллекция -> кампании -> landin_page

Я пытался использовать такие запросы, используя django ORM: affnetworkid = подготовленная переменная django с идентификатором документа

collection = Categories.objects.get(id=affnetworkid,campaigns__in={name:campaign_name})

Но ничего не сработало!! Мне нужно вернуть объект результата категории, который должен иметь внутри, это:

{
    "payout" : 0.7,
    "landing_page" : [ ],
    "name" : "DOS",
    "rotate_urls" : null,
    "_module" : "setup.models",
    "_model" : "Campaigns",
    "cloaking" : true,
    "rotate_urls_status" : false,
    "affiliate_url" : "www.google.com/[[subid]][[c1]][[c2]][[c3]][[c4]]"
}

Таким образом, я могу сделать это:

collection.landing_page.append(LandingPageClass)
collection.save()

Но, к сожалению, до сих пор я не смог получить ожидаемый результат... Кто-нибудь может мне помочь? Также каждый раз, когда я пытаюсь выполнить итерацию запроса следующим образом:

a = Categories.objects.get(id=affnetworkid)

Я получаю сообщение о том, что возвращаемый объект не повторяется. Спасибо

0 ответов

Другие вопросы по тегам