Django와 MongoDB 연결: 모든 버전 관리 헛소리 분석(2022년 에디션)

저를 믿으세요. 저는 마침내 pymongo, mongoengine 및 djongo를 사용하여 Django를 MongoDB와 연결해 보았습니다. MongoDB의 웹사이트는 이를 수행하기 위한 심층적이고 단계별 지침을 제공하지만 "거대한"(Mongo는 문자 그대로 거대한 😛로 번역됨) 데이터베이스를 목표로 하기 전에 해결해야 할 몇 가지 버전 관리 문제가 있습니다.

여기서는 최신 Django 버전 2.2.26 및 Python 버전 3.6 이상을 사용하고 있다고 가정합니다.

MongoDB가 이미 설치되어 있으면 1단계를 건너뜁니다. Django와 연결하는 데 사용할 2개의 드라이버를 더 잘 이해하려면 버전을 한 번 확인하십시오.

MongoDB 버전 사용을 확인하려면-
mongod --version

1 단계



다음 명령을 사용하여 터미널에서 로컬에 MongoDB를 설치합니다.

추출 설치[email protected]

Windows의 경우 설치 프로그램을 다운로드하고 제공된 단계를 따라야 합니다here.

2 단계



here에서 MongoDB Compass를 다운로드합니다. SQLWorkbench와 같은 사용자 친화적인 인터페이스를 제공하며 거기에서 무료로 MongoDB 클러스터를 실행할 수도 있습니다. 응용 프로그램은 다음과 같습니다.



3단계



Django 프로젝트에 연결
  • Djongo 사용

  • 터미널을 통해 djongo 설치-

    pip install djongo
    

    실제로 djongo를 사용하여 Django 프로젝트와 MongoDB를 연결하려면 settings.py 파일에 다음을 추가하기만 하면 됩니다.

        DATABASES = {
              'default': {
                'ENGINE': 'djongo',
                'NAME': 'YOUR_DATABASE_NAME',
                'HOST': 'localhost',
                'PORT': '27017'
            }
        }
    



  • MongoEngine 사용

    mongoengine을 사용하여 Django 프로젝트와 MongoDB를 연결하려면 settings.py 파일에 다음을 추가해야 합니다.


  •     _MONGODB_USER = ""
        _MONGODB_PASSWD = ""
        _MONGODB_HOST = "localhost"
        _MONGODB_NAME = "YOUR_DATABASE_NAME"
        _MONGODB_PORT = 27017
        _MONGODB_DATABASE_HOST = "mongodb://%s:%s@%s/%s" % (
            _MONGODB_USER,
            _MONGODB_PASSWD,
            _MONGODB_HOST,
            _MONGODB_NAME,
        )
    
        mongoengine.connect(_MONGODB_NAME, host=_MONGODB_HOST, port=_MONGODB_PORT)
    


    그런 다음 models.py 파일에서 가져와서 사용할 수 있습니다.



  • 파이몽고 사용

    최신 pymongo 버전은 최신 mongoDB v5.0과 호환되지 않는 4.0.2입니다. 이 오류가 발생한 후 pymongo 버전을 다운그레이드했습니다.

    pymongo.errors.ConfigurationError: Server at xxxx:xx reports wire version 5, but this version of PyMongo requires at least 6 (MongoDB 3.6).
    

    파이 몽고 v 3.12.1

    몽고DB v 5.0.5

    소스 - pypi.org

    버전 관리 헛소리 때문에 나는 꺼졌습니다.

  • 주요 테이크 아웃


  • 모델을 통해 컬렉션에 쉽게 액세스할 수 있도록 mongoengine을 사용하는 것이 좋습니다.

  • Django는 Django와 연결하기가 매우 쉽습니다. (저는 3개 모두 연결을 시도했지만 어떻게든 pymongo의 버전 비호환성으로 인해 djongo와 연결할 수 없었습니다.)

    분명히 Djongo는 pymongo 및 sqlparse에 종속되어 있으므로 Djongo를 설치한 후 pymongo에 적합한 버전을 가져와야 합니다.



  • 이제 올라가서 pymongo의 버전 관리 문제를 확인하면 MongoDB v5.0이 PyMongo의 v 4.0과 호환되지 않는다는 것을 알 수 있습니다.

    pymongo의 버전을 다운그레이드하려면 다음 명령을 실행하십시오.

    python3 -m pip install pymongo==3.12.1
    
  • 따라서 다음 조합을 사용하면 놀라운 결과를 얻을 수 있습니다.
  • 종고 v 1.3.6
  • 파이몽고 v 3.12.1
  • 몽고DB v 5.0.5

  • 좋은 웹페이지 즐겨찾기