#django #mongodb
#django #mongodb
Вопрос:
Я работаю с Django 3.1 edition. В качестве базы данных я выбираю любую базу данных NoSQL, такую как MongoDB. Я попробовал два способа подключения MongoDB к Django 3.1. Первый использует Djongo, а второй — движок Mongo. Но в обоих случаях я не могу работать с Django 3.1. В случае Django он не поддерживает Django 3.1, но переключает меня на Django 3.0.5, а в случае движка mongo он не поддерживает Django 3.1. Есть ли какой-либо третий способ подключения MongoDB к Django 3.1.Обратите внимание, что я должен использовать только Django 3.1
Это документы, которые я просматривал в движке Djongo и Mongo.
https://pypi.org/project/djongo/
https://django-mongodb-engine.readthedocs.io/en/latest/topics/setup.html
Комментарии:
1. Есть ли причина, по которой вы используете MongoDB со свежим проектом на платформе, разработанной для традиционных СУБД? Один из вариантов — использовать поддерживаемую БД, такую как Postgres, для вашей БД по умолчанию, а Mongo — в качестве дополнительного подключения к БД. Если вы ищете индексированный JSON в столбце, Postgres тоже это делает: лучший из всех миров.
2. На самом деле, я не руководитель проекта. Я рассказал, как найти способ подключения Django 3.1 к MongoDB. Мне будет очень полезно, если вы подскажете мне, как это сделать. (конечно, если есть какой-либо способ вообще …)
Ответ №1:
Вашим лучшим выбором будет Djongo:
https://github.com/nesdis/djongo/
Однако в master
настоящее время ветка Djongo поддерживает версию до версии Django 3.0.5. Если вам действительно нужна поддержка Django 3.1:
- Клонируйте репозиторий Djongo
- Измените эту строку, чтобы иметь верхние границы
<3.2
вместо<=3.0.5
: https://github.com/nesdis/djongo/blob/de5191ccbd9dd2255627e6d1cb6a58cd591c2353/setup.py#L86 pip install -e .
из клонированного каталога в ваш venv.
Затем посмотрите, работает ли это, и что нужно исправить. Если вы что-то исправите в Djongo, вы можете отправлять запросы на извлечение в проект для поддержки 3.1.
Пожалуйста, обратите внимание, что это довольно рискованная зависимость для внедрения в проект. Вы будете заблокированы для использования версий Django, которые Djongo поддерживает в будущем, и не сможете обновляться, пока Djongo не сделает. Мне приходилось делать это в некоторых моих проектах со сторонней поддержкой SQL Server, и это может расстраивать. Я бы не рекомендовал это, если вам неудобно участвовать в проекте, на который вы полагаетесь, и вносить свой вклад. Тем не менее… удачи!