Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
장고 MongoDB 백엔드

제한 사항 및 향후 기능

이 페이지에서는 Django MongoDB 백엔드가 지원 하지 않는 기능 목록을 찾을 수 있습니다. 현재 정식 출시(GA) 및 GA 이후 릴리스를 위해 계획된 기능도 찾을 수 있습니다. 사용자 요구에 따라 향후 기능에 우선순위를 부여하며, JIRA 문제를 생성하여기능에 대한 지원 요청 수 있습니다.

이 섹션에서는 다음과 같은 유형의 지원되지 않는 장고 및 MongoDB 기능에 대해 학습 수 있습니다.

  • 트랜잭션 관리

  • 모델 제한 사항

  • 쿼리 제한 사항

  • 지원되지 않는 관리 명령

  • 마이그레이션 제한 사항

  • 캐싱

  • 성능

쿼리 실행은 장고 및 MongoDB의 기본값 동작인 자동 커밋 모드 사용합니다. 각 쿼리 즉시 데이터베이스 에 커밋됩니다.

장고의 트랜잭션 관리 API는 지원되지 않습니다.

장고는 약간 다른 모델이 동일한 컬렉션 주식 MongoDB의 다형성 패턴 지원 하지 않습니다.

Django MongoDB 백엔드는 다음 인덱스 기능을 지원 하지 않습니다.

  • 장고 인덱스 API 통해 $vectorSearch$search 인덱스 만들기

  • 장고 인덱스 API 통해 지리 공간적 인덱스 만들기

  • 모델 생성 후 EmbeddedModelFields 의 인덱스 업데이트

장고 MongoDB 백엔드에는 지정된 필드 유형에 대해 다음과 같은 제한 사항이 있습니다.

  • ArrayField

    • ArrayField 다형성은 지원되지 않습니다.

    • ArrayField 내에 중첩된 EmbeddedModelField 값은 지원되지 않습니다.

  • EmbeddedModelField

    • EmbeddedModel 스키마 변경 사항은 생성 후 등록되지 않습니다.

    • 내장된 문서는 Django 외래 키를 사용할 수 없습니다.

    • 임의 또는 유형이 지정되지 않은 임베디드 모델 필드는 지원되지 않습니다. 모든 필드는 EmbeddedModel 클래스에서 파생되어야 합니다.

  • JSONField

    • 장고 MongoDB 백엔드는 JSON 과 SQL null 값을 구분할 수 없습니다. Value(None, JSONField()) 또는 isnull 조회를 사용하는 쿼리는 JSON 및 SQL null 값을 모두 반환합니다.

    • Q(value__foo="bar")와 같이 Q 객체가 포함된 일부 쿼리는 예상대로 작동하지 않을 수 있습니다.

    • None 값을 잘못 필터링하면 필드 존재하지 않는 객체가 반환됩니다.

  • DateTimeField

    • DateTimeField 값에 대한 마이크로초 세분성은 지원되지 않습니다.

  • DurationField

    • DurationField 마이크로초가 아닌 밀리초를 저장합니다.

  • ForeignKey

    • $lookup 작업을 사용하지 않으려면 가능하면 ForeignKey 필드 대신 EmbeddedModelField 을(를) 사용해야 합니다. EmbeddedModelField 는 MongoDB 내장된 문서 에뮬레이션하며 ForeignKey 필드 보다 성능이 뛰어납니다. 작업을 줄이는 방법에 $lookup 대해 자세히 학습 Atlas 문서에서 $lookup 작업 줄이기 가이드 참조하세요.

    • 필드 에 대한 CASCADE 삭제 성능은 ForeignKey 를 사용하는 것만큼 성능이 EmbeddedModelField 떨어집니다.

다음 필드 유형은 Django MongoDB 백엔드에서 사용할 수 없습니다.

  • GeneratedField

  • AutoField (BigAutoFieldSmallAutoField 포함)

장고 MongoDB 백엔드는 다음 QuerySet API 메서드를 지원 하지 않습니다.

  • prefetch_related()

  • extra()

장고 MongoDB 백엔드는 여러 컬렉션에 걸쳐 있는 QuerySet.delete()update() 쿼리를 지원 하지 않습니다.

장고 MongoDB 백엔드는 다음과 같은 지리 공간적 쿼리 기능을 지원 하지 않습니다.

  • GeoDjango

  • MongoDB 전용 지리 지리 공간적 쿼리를 위한 장고 조회 연산자

장고 MongoDB 백엔드에는 MongoDB 집계 프레임워크 에 대한 사용자 지정 장고 필드 조회가 포함되어 있지 않습니다. 대신 raw_aggregate() 메서드를 사용합니다. 원시 데이터베이스 쿼리 수행 가이드 참조하세요.

장고 MongoDB 백엔드는 다음 데이터베이스 기능을 지원 하지 않습니다.

  • Chr

  • ExtractQuarter

  • MD5

  • Now

  • Ord

  • Pad

  • Repeat

  • Reverse

  • Right

  • SHA1, SHA224, SHA256, SHA384, SHA512

  • Sign

  • The tzinfo parameter of the TruncDate and TruncTime database functions isn't supported.

다음 django-admin 명령은 지원되지 않습니다.

Django MongoDB 백엔드는 다음 마이그레이션 기능을 지원 하지 않습니다.

데이터베이스 캐싱은 Django의 SQL 특정 createcachetable 명령이 아닌 Django MongoDB 백엔드의 createcachecollection 명령을 사용합니다.

둘째, Django의 내장 데이터베이스 캐시 백엔드 django.core.cache.backends.db.DatabaseCache 대신 django_mongodb_backend.cache.MongoDBCache 백엔드 사용해야 합니다.

엔지니어링 팀 Django MongoDB 백엔드의 Public Preview 출시하다 위한 기능 개발을 우선시하고 있습니다. 이 때문에 특정 워크로드에서는 성능 제한이 발생할 수 있습니다. 성능 문제가 발생하면 문제 & 도움말 가이드에 표시된 대로 신고해 주세요.

이 섹션에서는 GA 및 GA 이후 Django MongoDB 백엔드 릴리스에 도입될 다음과 같은 유형의 Django 및 MongoDB 기능에 대해 학습 수 있습니다.

GA 출시하다 에서 다음과 같은 MongoDB 기능을 지원 계획입니다.

  • Django API 사용하여 Vector Search, Atlas Search 및 지리 공간적 인덱스를 프로그래밍 방식으로 관리 .

  • Django API 사용한 Vector Search, Atlas Search 및 지리 공간적 쿼리

  • Queryable Encryption 및 클라이언트 사이드 필드 레벨 암호화

  • 데이터베이스 트랜잭션

향후 GA 이후 릴리스에서 다음 MongoDB 기능을 지원 계획입니다.

  • 대용량 파일 저장 위한 GridFS

  • 데이터 모니터링 위한 변경 스트림

  • 스키마 유효성 검사

이 섹션에 언급된 MongoDB 기능에 대해 자세히 학습 다음 리소스를 참조하세요.

GA 출시하다 에서 다음 모델 기능을 지원 계획입니다.

  • 내장된 문서 배열

  • 다형성 내장된 문서 및 배열

  • 임베디드 모델 스키마 변경 사항을 EmbeddedModelField 값에 적용

  • 컬렉션 내의 여러 모델

  • 임베디드 모델의 양식 표현 개선

향후 GA 이후 출시하다 에서는 BSONRegExp 데이터 유형 에 대한 사용자 지정 모델 필드 추가할 계획입니다.

EmbeddedModelField에 대한 직렬화 지원 (예: 장고의 dumpdataloaddata 관리 명령)은 GA 출시하다 에 추가될 예정입니다.

GA 출시하다 까지 다음 타사 라이브러리와의 호환성을 테스트할 계획입니다.

돌아가기

트랜잭션

이 페이지의 내용