МонгоДБ + Джанго

Привет, кто может подсказать по Монго+Джанго?

Есть существующая МонгоДБ, которую нужно подключить к Джанго проекту. Каждый документ таблицы содержит 23 поля, некоторые просто string, но также есть array и object. Есть поля с глубокой вложенностью, например array -> object -> тут несколько string и опять array > string. Вложенные объекты не имеют айди.

Нашел библиотеку Djongo для работы с MongoDB в Джанго. Есть еще MongoEngine, но особо разницы не вижу, они все нужны для эмуляции работы ORM с NoSQL.

Теперь мне нужно описать модель в Джанго. Админ. команда django inspectdb не работает. Пытался описать вручную, но затык как раз на вложенных объектах. Как правильно это делать? Создавать отдельные абстрактные модели и делать что-то вроде relations в основной модели? Или вообще не описывать модели и работать с NoSQL языком?

Кто сталкивался?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В Джанго 3.1 обещают улучшить поддержку остальных бд (помимо пострегсс)

Якщо треба звичайне REST API то простіше вибрати мову програмування на якій є готові і якісні бібліотеки для MongoDB, Node.js або Golang

І просте API з пагінацією та мінімальною фільтрацією яке віддає дані з MongoDB на Golang можна написати за день, з агрегаціями трохи довше

Я сталкивался когда писал драйвер PEP-249 для etcd. КМК, в случае с MongoDB оно того не стоит. Во-первых, Mongo не поддерживает то, что поддерживает реляционная база данных и, соответственно, то что ожидает от базы Django. Во-вторых, постоянно будут вылезать проблемы связанные с пунктом один (миграции, foreign keys, indexes).
Сложно представить хорошую причину почему надо пойти на это — может расскажете зачем?

да я сам склоняюсь к такому мнению, как-минимум потому, что связка mongo-django выглядит сырой, библиотек мало и работают коряво, уже с третьей вылазят косяки. Просто заказчик дал базу с данными, которую надо подключить. Он со своей стороны парсит туда данные, а мне нужно рест-апи сделать.

что-то одно в этой паре надо поменять. Или базу на что-то PEP-249 совместимое, или Django на flask.

ок, а если на flask поменять, там напрямую с Nosql делать запросы?

да, я себе так это представляю. хотя сам flask я видел только на уровне документации, так что могу ошибаться.

ну если не смогу толково модели описать, скорее всего так и сделаю. Спасибо за совет

Подписаться на комментарии