Джанго 1.8 и MongoDB?

Этот вопрос уже задан на StackOverflow,

Задаваемые вопросы датируются 2013 годом, сейчас 2015 год, и Джанго быстро вырос.

Какова ситуация с использованием mongodb с Django 1.8 по состоянию на 2015 год?

Поддерживает ли Django Monogodb из коробки (с адаптерами БД)? или следует использовать другой дистрибутив, такой как django-nonrel?


person Rivadiz    schedule 27.08.2015    source источник


Ответы (5)


Я не думаю, что Django предоставляет стандартную поддержку MongoDB. Он больше подходит для реляционных баз данных.

Одним из решений может быть использование MongoEngine..

MongoEngine — это средство сопоставления объектов и документов, написанное на Python для работы с MongoDB.

Вам нужно просто настроить MongoEngine с Django, и тогда он должен работать комфортно.

person Rahul Gupta    schedule 27.08.2015
comment
MongoEngine, похоже, требуется Django 1.6-nonrel, который является более ранней версией и не имеет официальной поддержки. - person Peter G.; 26.11.2015
comment
Нет, Mongoengine не требует, чтобы Django-nonrel работал вместе с ним. Вы можете установить Django, Mongoengine и pymongo, и они должны работать на вас. В настоящее время я использую Django (1.8.2), mongoengine (0.10.0) с pymongo (3.0.3) в проекте, и он отлично работает. - person Rahul Gupta; 26.11.2015
comment
@PeterGerhat, похоже, имел в виду django-mongodb-engine, который требует nonrel req. старая версия [django] (django- mongodb-engine.readthedocs.org/en/latest/topics/).. Глядя на два на github, кажется, что MongoEngine будет подходящим вариантом.. - person codervince; 01.03.2016
comment
Тем не менее, MongoEngine ищет наемных работников, чтобы довести свой старый плагин django до нуля так что, возможно, я говорил слишком рано. - person codervince; 01.03.2016

просто мои мысли, несколько субъективные и самоуверенные, но я бы сказал, что это не очень хорошо работает. Я быстро отказался от идеи запуска Django с MongoDB, так как его система аутентификации сильно зависит от работы реляционной базы данных.

По-видимому, есть способы обойти это, но в конечном итоге я решил, что для моего проекта не стоит усилий просто использовать MongoDB.

person Chris Hawkes    schedule 27.08.2015

Поддерживает ли Django Monogodb из коробки (с адаптерами БД)?

Нет. Если вы сможете найти совместимый с django движок для mongodb, то он будет работать отлично.

Хорошая новость заключается в том, что такой движок существует, он называется django-mongodb-engine; плохая новость заключается в том, что он использует django-nonrel, который не обновляется до последней стабильной версии django.

Итак, если вам необходимо, вы можете использовать MongoDB за счет отсутствия некоторых обновленных функций django (и, что более важно, любых исправлений безопасности).

Если вы хотите дополнить свою основную базу данных с помощью mongodb, то есть mongodb не будет вашей основной базой данных, то процесс будет намного проще.

Итак, резюмируя:

  • django 1.8 не предоставляет готовой поддержки mongodb (или других нереляционных баз данных) в качестве основного хранилища данных.

  • поддержка доступна с использованием стороннего пакета django-nonrel, который стоит за текущей производственной версией django.

person Burhan Khalid    schedule 27.08.2015

Я наткнулся на новый пакет, который поддерживает последнюю версию django в MongoDB: djongo

Как указано выше, mongoengine не поддерживает все приложения django. В частности, приложение авторизации не работает на mongoengine.

Djongo утверждает, что компилирует запросы SQL в запросы mongodb. Таким образом, он по существу не зависит от версии и работает для всех версий Django.

Раскрытие информации: я внес свой вклад в этот пакет, исправив незначительные ошибки.

person nesdis    schedule 15.08.2017

Я знаю, что прошло три года, но те, кто интересуется MongoDB и Django сейчас, должны знать, что ситуация не изменилась. Mongoengine, как описано ранее, является достаточно хорошим инструментом, но все же есть ограничения. Например, когда я интегрировал mongodb с django с помощью mongoengine, я не смог использовать эластичный поиск в своем приложении. Кроме того, с mongoDB вы теряете функции администратора и аутентификации Django. Итак, MongoDB с Django — все еще рискованный выбор.

person saim2025    schedule 07.07.2018