Как добавить документ в документ списка встроенных моделей 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)
Я получаю сообщение о том, что возвращаемый объект не повторяется. Спасибо