Menu Docs
Página inicial do Docs
/ / /
Backend do Django MongoDB

Compatibilidade de recursos do Django e MongoDB

Nesta página, você pode encontrar informações sobre os recursos compatíveis e não suportados no backend do Django MongoDB . Você também pode encontrar recursos atualmente planejados para as versões de disponibilidade geral (GA) e pós-GA. Priorizaremos esses recursos futuros com base na demanda do usuário, e você pode solicitar suporte para um recurso criando um problema do JIRA.

Esta seção indica se o Backend do MongoDB do Django suporta várias funcionalidades do MongoDB e quais funcionalidades planejamos oferecer suporte na versão GA.

Importante

Os recursos não suportados do MongoDB que têm um símbolo de marca de seleção () na coluna Suporte planejado do GA estão planejados para a versão de disponibilidade geral posteriormente em 2025. No entanto, o suporte não é garantido.

Funcionalidade do MongoDB
Suporte atual
Suporte planejado do GA

índices do Atlas Search e Atlas Vector Search

Índices compostos

Índices de documento incorporados

Índices geoespaciais

Não compatível. Você não pode usar a API de índices do Django para criar esses índices, mas pode usar o driver PyMongo expondo seu MongoClient.

Índices multichave

Índices parciais

Índices de campo único

Unique indexes

Atualizando índices EmbeddedModelFields após a criação do modelo

Não compatível.

EmbeddedModelArrayField Índices

Não compatível.

Atualmente, o Django MongoDB Backend suporta todos os tipos de dados MongoDB não incluídos na tabela a seguir. Para visualizar uma lista completa dos tipos compatíveis, consulte a seção Campos BSON do MongoDB do guia Criar modelos.

Tipo de dados BSON
Suporte atual
Suporte planejado do GA

Array

Parcialmente suportado. Você pode usar o ArrayField tipo de campo, mas o ArrayField polimorfismo não é suportado.

Object

Parcialmente suportado. Você pode utilizar o tipo de campo EmbeddedModelField com as seguintes limitações:

  • EmbeddedModel as alterações de esquema não são registradas após a criação.

  • Documentos incorporados não podem receber chaves estrangeiras do Django.

  • Campos de modelo incorporado arbitrários ou não especificados não são suportados. Você deve derivar todos os campos de uma classe EmbeddedModel .

Suporte parcial planejado. Planejamos adicionar suporte para registrar alterações de esquema do EmbeddedModel após a criação.

Regular Expression

Não compatível.

Não compatível. No entanto, planejamos oferecer suporte a esse tipo em uma versão pós-GA.

Funcionalidade do MongoDB
Suporte atual
Suporte planejado do GA

Operações de agregação

Parcialmente suportado. O backend do MongoDB Django não inclui pesquisas de campo personalizadas do Django para a estrutura de agregação do MongoDB, mas você pode usar o método bruto_aggregate().

Suporte completo não planejado. No entanto, planejamos adicionar suporte para operadores de agregação MongoDB em uma versão pós-GA.

Queries do Atlas Search

Parcialmente suportado. Você não pode usar a API do Django QuerySet para executar queries no Atlas Search, mas pode usar o método bruto_aggregate().

Excluir operações

Consultas geoespaciais

Parcialmente suportado. Você não pode usar a API Django QuerySet ou GeoDjango para executar queries geoespaciais, mas pode usar o método bruto_aggregate().

Inserir operações

Ler operações

Atualizar operações

Queries do Vector Search

Parcialmente suportado. Você não pode usar a API do Django QuerySet para executar queries do Vector Search, mas você pode usar o método bruto_aggregate().

Funcionalidade do MongoDB
Suporte atual
Suporte planejado do GA

Suporte assíncrono

Autenticação

Armazenamento de dados em cache

✓ Use o backend django_mongodb_backend.cache.MongoDBCache em vez do backend de cache do banco de dados integrado do Django, django.core.cache.backends.db.DatabaseCache.

Fluxos de alterações

Não compatível.

Não compatível. No entanto, planejamos adicionar suporte para esse recurso em uma versão pós-GA.

Criptografia no nível do campo do lado do cliente e Queryable Encryption

Não compatível.

Interação de coleção

Interação com o banco de dados

GridFS

Não compatível.

Não compatível. No entanto, planejamos adicionar suporte para esse recurso em uma versão pós-GA.

Vários modelos para uma coleção

Não compatível.

Representação de documentos

✓ Usar modelos para representar documentos do MongoDB .

Validação de esquema

Não compatível.

Não compatível. No entanto, planejamos adicionar suporte para esse recurso em uma versão pós-GA.

Dados de Time Series

Transações

Não compatível.

Esta seção indica se o Backend do MongoDB do Django suporta várias funcionalidades do Django e quais funcionalidades planejamos oferecer suporte na versão GA.

Importante

Os recursos Django não suportados que têm um símbolo de marca de seleção () na coluna Suporte de Disponibilidade Geral estão planejados para a versão GA no final de 2025. No entanto, o suporte não é garantido.

Atualmente, o Backend do MongoDB Django suporta todos os tipos de campo do Django não incluídos na tabela a seguir. Para visualizar uma lista completa de campos suportados, consulte a seção Campos Django do guia Criar Modelos.

Tipo de campo Django
Suporte atual
Suporte planejado do GA

AutoField

Não compatível. Os tipos BigAutoField e SmallAutoField também não são suportados. Em vez disso, use ObjectIdField.

Não compatível.

CompositePrimaryKey

Não compatível.

Não compatível.

DateTimeField

Parcialmente suportado. Você pode usar este tipo de campo com as seguintes limitações:

  • A granularidade de microssegundos para valores DateTimeField não é suportada.

Suporte completo não planejado.

DurationField

Parcialmente suportado. Você pode usar este tipo de campo com as seguintes limitações:

  • DurationField armazena milissegundos em vez de microssegundos

Suporte completo não planejado.

ForeignKey

Parcialmente suportado. Você pode usar este tipo de campo com as seguintes limitações:

  • Quando possível, você deve usar um campo EmbeddedModelField em vez de um campo ForeignKey para evitar o uso de operações $lookup. Um EmbeddedModelField emula um documento incorporado do MongoDB e tem melhor desempenho do que um campo ForeignKey . Para saber mais sobre como reduzir as operações de $lookup, consulte o guia Reduzir operações de $lookup na documentação do Atlas.

  • O desempenho do CASCIDE exclui em um ForeignKey campo não é tão eficiente quanto usar EmbeddedModelField um.

Suporte completo não planejado.

GeneratedField

Não compatível.

Não compatível.

JSONField

Parcialmente suportado. Você pode usar este tipo de campo com as seguintes limitações:

  • O Backend do MongoDB Django não consegue distinguir entre um valor JSON e um valor SQL null. As queries que usam Value(None, JSONField()) ou a pesquisa isnull retornam valores JSON e SQL null.

  • Algumas queries com objetos Q, como Q(value__foo="bar"), podem não funcionar como esperado.

  • A filtragem para valores None retorna incorretamente objetos nos quais um campo não existe.

Suporte completo não planejado. No entanto, planejamos abordar o objeto Q e as limitações de filtragem de chave None em uma versão pós-GA.

Atualmente, o Backend do Django MongoDB suporta todos os métodos do Django QuerySet não incluídos na tabela a seguir. Para visualizar os métodos suportados, consulte API QuerySet na documentação do Django.

Recurso Django QuerySet
Suporte atual
Suporte planejado do GA

delete()

Parcialmente suportado. Você não pode usar este método para executar queries que abranjam múltiplas collections.

Suporte completo não planejado.

extra()

Não compatível.

Não compatível.

prefetch_related()

Não compatível.

Não compatível.

raw()

Não compatível. No entanto, você pode usar o método raw_aggregate() para executar queries que usam a sintaxe de agregação pipeline do MongoDB.

Suporte completo não planejado.

update()

Parcialmente suportado. Você não pode usar este método para executar queries que abranjam múltiplas collections.

Suporte completo não planejado.

O Django MongoDB Backend suporta atualmente todas as funções de banco de dados não incluídas na tabela a seguir. Para visualizar uma lista completa de funções, consulte Funções do banco de dados na documentação do Django.

Função Django
Suporte atual
Suporte planejado do GA

Chr

Não compatível.

Não compatível.

ExtractQuarter

Não compatível.

Não compatível.

MD5

Não compatível.

Não compatível.

Now

Não compatível.

Não compatível.

Ord

Não compatível.

Não compatível.

Pad

Não compatível.

Não compatível.

Repeat

Não compatível.

Não compatível.

Reverse

Não compatível.

Não compatível.

Right

Não compatível.

Não compatível.

SHA1, SHA224, SHA256, SHA384, SHA512

Não compatível.

Não compatível.

Sign

Não compatível.

Não compatível.

Trunc

Parcialmente suportado. O parâmetro tzinfo das funções de banco de dados TruncDate e TruncTime não é suportado.

Suporte completo não planejado.

Funcionalidade Django
Suporte atual
Suporte planejado do GA

Administrador do Django

Formulários Django

Autenticação Django

Comandos de gerenciamento

Parcialmente suportado. Para visualizar os comandos não suportados, consulte a seção a seguir.

Suporte completo não planejado.

O Django MongoDB Backend suporta atualmente todos os comandos de gerenciamento não incluídos na tabela a seguir. Para visualizar uma lista completa de comandos, consulte Comandos disponíveis na documentação do Django.

Comando Django
Suporte atual
Suporte planejado do GA

createcachetable

Não compatível. Em vez disso, use o comando createcachecollection do Django MongoDB Backend.

Não compatível.

dumpdata

Não compatível.

inspectdb

Não compatível.

Não compatível. No entanto, planejamos oferecer suporte a esse comando em uma versão pós-GA.

loaddata

Não compatível.

sqlflush

Não compatível.

Não compatível.

sqlsequencereset

Não compatível.

Não compatível.

Funcionalidade Django
Suporte atual
Suporte planejado do GA

Criar, excluir e atualizar índices por meio de comandos de migração

Parcialmente suportado. Não é possível atualizar índices em campos de modelo ou array incorporados.

Suporte completo não planejado.

Não compatível.

Não compatível.

migrate --fake-initial opção

Não compatível.

Não compatível.

Biblioteca
Suporte atual
Suporte planejado do GA

Parcialmente suportado. A maioria dos casos de uso é suportada.

Parcialmente suportado. Esta versão descreverá as limitações do caso de uso.

Parcialmente suportado. A maioria dos casos de uso é suportada.

Parcialmente suportado. Esta versão descreverá as limitações do caso de uso.

Parcialmente suportado. A maioria dos casos de uso é suportada.

Parcialmente suportado. Esta versão descreverá as limitações do caso de uso.

Não compatível.

Parcialmente suportado. Esta versão descreverá as limitações do caso de uso.

Parcialmente suportado. A maioria dos casos de uso é suportada.

Parcialmente suportado. Esta versão descreverá as limitações do caso de uso.

Voltar

Executar queries brutas

Nesta página