개요
이 페이지에서는 Django MongoDB 백엔드가 지원 하지 않는 기능 목록을 찾을 수 있습니다. 현재 정식 출시(GA) 및 GA 이후 릴리스를 위해 계획된 기능도 찾을 수 있습니다. 사용자 요구에 따라 향후 기능에 우선순위를 부여하며, JIRA 문제를 생성하여기능에 대한 지원 요청 수 있습니다.
기능 제한
이 섹션에서는 다음과 같은 유형의 지원되지 않는 장고 및 MongoDB 기능에 대해 학습 수 있습니다.
트랜잭션 관리
쿼리 실행은 장고 및 MongoDB의 기본값 동작인 자동 커밋 모드 사용합니다. 각 쿼리 즉시 데이터베이스 에 커밋됩니다.
장고의 트랜잭션 관리 API는 지원되지 않습니다.
모델 제한 사항
장고는 약간 다른 모델이 동일한 컬렉션 주식 MongoDB의 다형성 패턴 지원 하지 않습니다.
Indexes
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 및 SQLnull
값을 모두 반환합니다.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
(BigAutoField
및SmallAutoField
포함)
쿼리 제한 사항
장고 MongoDB 백엔드는 다음 QuerySet
API 메서드를 지원 하지 않습니다.
prefetch_related()
extra()
장고 MongoDB 백엔드는 여러 컬렉션에 걸쳐 있는 QuerySet.delete()
및 update()
쿼리를 지원 하지 않습니다.
지리공간 쿼리
장고 MongoDB 백엔드는 다음과 같은 지리 공간적 쿼리 기능을 지원 하지 않습니다.
GeoDjango
MongoDB 전용 지리 지리 공간적 쿼리를 위한 장고 조회 연산자
집계 연산자
장고 MongoDB 백엔드에는 MongoDB 집계 프레임워크 에 대한 사용자 지정 장고 필드 조회가 포함되어 있지 않습니다. 대신 raw_aggregate()
메서드를 사용합니다. 원시 데이터베이스 쿼리 수행 가이드 참조하세요.
데이터베이스 함수
장고 MongoDB 백엔드는 다음 데이터베이스 기능을 지원 하지 않습니다.
지원되지 않는 관리 명령
다음 django-admin
명령은 지원되지 않습니다.
createcachetable
( 캐싱 참조 )inspectdb
마이그레이션 제한 사항
Django MongoDB 백엔드는 다음 마이그레이션 기능을 지원 하지 않습니다.
강제 스키마 유효성 검사. 애플리케이션 에서 스키마 유효성 검사 시행하다 방법을 학습 MongoDB Server 매뉴얼의 JSON schema 유효성 검사 지정 가이드 참조하세요.
migrate --fake-initial
옵션입니다.
캐싱
데이터베이스 캐싱은 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 기능에 대해 학습 수 있습니다.
MongoDB 기능
GA 출시하다 에서 다음과 같은 MongoDB 기능을 지원 계획입니다.
Django API 사용하여 Vector Search, Atlas Search 및 지리 공간적 인덱스를 프로그래밍 방식으로 관리 .
Django API 사용한 Vector Search, Atlas Search 및 지리 공간적 쿼리
Queryable Encryption 및 클라이언트 사이드 필드 레벨 암호화
데이터베이스 트랜잭션
향후 GA 이후 릴리스에서 다음 MongoDB 기능을 지원 계획입니다.
대용량 파일 저장 위한 GridFS
데이터 모니터링 위한 변경 스트림
스키마 유효성 검사
모델 기능
GA 출시하다 에서 다음 모델 기능을 지원 계획입니다.
내장된 문서 배열
다형성 내장된 문서 및 배열
임베디드 모델 스키마 변경 사항을
EmbeddedModelField
값에 적용컬렉션 내의 여러 모델
임베디드 모델의 양식 표현 개선
향후 GA 이후 출시하다 에서는 BSONRegExp
데이터 유형 에 대한 사용자 지정 모델 필드 추가할 계획입니다.
관리 명령 기능
EmbeddedModelField
에 대한 직렬화 지원 (예: 장고의 dumpdata
및 loaddata
관리 명령)은 GA 출시하다 에 추가될 예정입니다.
타사 라이브러리
GA 출시하다 까지 다음 타사 라이브러리와의 호환성을 테스트할 계획입니다.