Адаптация модели Django (с помощью djOngo) к документу MongoDB
У меня есть полная база данных с такими документами, как:
{
"_id": {
"$oid": "6191419b42a21c7b38f028ae"
},
"like_count": 58142,
"slug": "the-elder-scrolls-iv-oblivion",
"name": "The Elder Scrolls IV: Oblivion",
"description": "The Elder Scrolls IV: Oblivion",
"image": {
"thumb": "https://cdn.website.com/c/04dcf5be7b651ef57c542bf5634b08c2/400x510/cdn.kanobu.ru/games/e17c468f-cd9e-48d7-bb23-6cbd736fa330.JPG",
"origin": "https://cdn.website.com/games/e17c468f-cd9e-48d7-bb23-6cbd736fa330.JPG"
},
"release_date": {
"string": "20 марта 2006",
"date": "2006-03-20",
"is_precise": true,
"precision_class": "day"
},
"created": "2009-03-02T18:48:27",
"rating": 8.94065934065934,
"genres": [{
"id": 3649,
"name": "Экшен",
"slug": "action",
"position": 10
}, {
"id": 3656,
"name": "Ролевые",
"slug": "rpg",
"position": 30
}],
"platforms": [{
"id": 1,
"name": "PC",
"slug": "pc",
"position": 0
}, {
"id": 59,
"name": "Xbox One",
"slug": "xbox-one",
"position": 2
}, {
"id": 4,
"name": "PlayStation 3",
"slug": "ps-3",
"position": 4
}, {
"id": 6,
"name": "Xbox 360",
"slug": "xbox-360",
"position": 5
}],
"developers": [{
"id": 79,
"name": "Bethesda Softworks",
"slug": "bethesda-softworks"
}],
"publishers": [{
"id": 43,
"name": "2K Games",
"slug": "2k-games"
}],
"requirements": {
"min_os": "Windows XP, Windows 2000, Windows XP 64-разрядная",
"min_cpu": "Intel Pentium 4 с тактовой частотой 2 ГГц или аналогичный ",
"min_gpu": "со 128 МБ видеопамяти, совместимая с DirectX 9.0 ",
"min_ram": "1.0",
"min_hdd": "5.0",
"rec_os": "",
"rec_cpu": "",
"rec_gpu": "",
"rec_ram": null,
"rec_hdd": null
}
}
Я использовал CharField для полей типа "название", "описание", и EmbededField (из Djongo) для полей типа "release_date" и "requirements". Они "подключились", и отобразились в Django Admin, но у меня была ошибка для ArrayFields, таких как "жанры" или "платформы".
Я пытался создать его с помощью ArrayField, но получил эту ошибку:
djongo.exceptions.NotSupportedError: This version of djongo does not support indexes on embedded fields
Может ли кто-нибудь дать простые идеи, как я могу создать этот тип поля в Djongo. Я знаю, что лучший способ - создать новую базу с собственными моделями, но там более 50K документов, и я не могу этого сделать.