4

Этот вопрос уже задан на StackOverflow,Django 1.8 и MongoDB?

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

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

Поддерживает ли Django Monogodb из коробки (с адаптерами db)? или другое распределение, такое как джанго-нереал, должно использоваться?

ответ

3

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

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

3

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

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

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

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

+0

«MongoEngine», похоже, требует Django 1.6-нереля, который является понижением и не имеет официальной поддержки –

+0

Нет, Mongoengine не требует, чтобы Django-нереал работал вместе с ним. Вы можете установить Django, Mongoengine и pymongo, и это должно сработать для вас. В настоящее время я использую Django (1.8.2), mongoengine (0.10.0) с pymongo (3.0.3) в проекте и отлично работает. –

+0

@PeterGerhat, похоже, имел в виду двигатель django-mongodb, который действительно требует нерелятивирования. более старая версия [django] (https://django-mongodb-engine.readthedocs.org/en/latest/topics/setup.html#django-nonrel). Глядя на два на github, кажется, MongoEngine будет способ пойти .. – codervince

2

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

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

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

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

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

Итак, в заключении:

  • Джанго 1,8 не обеспечивает вне коробки поддержки MongoDB (или других не-реляционных баз данных) в качестве основного хранилища данных.

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

1

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

Как было указано выше, mongoengine не поддерживает все CONTRIB приложения Джанго. Особенно приложение auth не работает на mongoengine

Djongo претендует на компиляцию SQL-запросов в запросы mongodb. Таким образом, это по сути версия агностик и работает для всех версий Django.

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