Menu Docs
Página inicial do Docs
/ /

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 versões futuras. Priorizaremos esses recursos futuros com base na demanda do usuário, e você pode solicitar suporte para um recurso criando um problema do JIRA.

O Django MongoDB Backend suporta as seguintes operações, mas elas podem ter menos desempenho:

(operação)
Notas de desempenho

$expr operations

Queries that use the $expr operator might run slowly, since this operator often cannot predict which index to use and performs a collection scan. Some QuerySet operations, such as queries that specify an in lookup, use $expr to evaluate the query results and experience degraded performance.
We plan to address this performance issue in a post-GA release.

$lookup operations

Queries that use the $lookup operator might run slowly. To improve performance, we recommend that you use embedded models instead of the $lookup operator when possible. To learn more about how to reduce $lookup operations, see the Reduce $lookup Operations guide in the MongoDB Atlas documentation.

Esta seção indica se o Django MongoDB Backend oferece suporte a vários recursos do MongoDB .

Funcionalidade do MongoDB
Suporte atual

Índices de pesquisa

Parcialmente suportado. Os seguintes campos de definição de índice avançada não são suportados:

  • numPartitions

  • analyzers

  • storedSource

  • synonyms

  • typeSets

O MongoDB não suporta índices de pesquisa em alguns tipos de dados. Para exibir uma lista de tipos não suportados, consulte Limitações de tipo de dados na documentação do MongoDB Atlas .

Índices de Vector Search

Parcialmente suportado. Você pode usar o Django MongoDB Backend para criar índices básicos do Vector Search que especificam um nome de índice, os campos para indexar e uma função de similaridade. Todos os outros campos de definição de índice não são suportados.

Índices compostos

Índices de documento incorporados

Índices geoespaciais

Índices multichave

Índices parciais

Índices de campo único

Unique indexes

Atualização de índices de modelo incorporados após a criação do modelo

Não compatível.

EmbeddedModelArrayField Índices

PolymorphicEmbeddedModelField e PolymorphicEmbeddedModelArrayField í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

Object

You can use embedded models and polymorphic embedded models to represent objects. If you are using the EmbeddedModelField field, the following limitations apply: - Foreign key fields are not supported. - Arbitrary or untyped embedded model fields are not supported. You must derive all fields from an EmbeddedModel class.

Regular Expression

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

Funcionalidade do MongoDB
Suporte atual

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().

Queries de pesquisa do MongoDB

Excluir operações

Consultas geoespaciais

Use the raw_aggregate() method to run geospatial queries instead of the GIS QuerySet API.

Inserir operações

Ler operações

Atualizar operações

Queries do MongoDB Vector Search

Funcionalidade do MongoDB
Suporte atual

Suporte assíncrono

Autenticação

Armazenamento de dados em cache

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

Fluxos de alterações

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. No entanto, planejamos adicionar suporte para esse recurso em uma versão pós-GA.

Interação de coleção

Interação com o banco de dados

GridFS

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

Use models to represent MongoDB documents.

Validação de esquema

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

You can use Django MongoDB Backend's custom transactions API with the following limitations: - QuerySet.union() is not supported within a transaction. - Savepoints, or nested atomic blocks, are not supported. The outermost atomic block starts a transaction, and any subsequent atomic blocks have no effect. - Your MongoDB deployment must be a replica set or sharded cluster.

Esta seção indica se o Backend do MongoDB do Django suporta vários recursos do Django.

Atualmente, o MongoDB Backend do Django suporta todos os campos 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

AutoField

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

CompositePrimaryKey

Não compatível.

DateTimeField

Microsecond granularity for DateTimeField values is not supported.

DurationField

DurationField stores milliseconds rather than microseconds.

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 $lookup de, consulte o guia Reduzir operações de $lookup na documentação do Atlas .

  • O desempenho de exclusões CASCADE em um campo ForeignKey não é tão eficiente quanto usar um EmbeddedModelField.

GeneratedField

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.

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

delete()

You cannot use this method to perform queries that span multiple collections.

extra()

Não compatível.

Pesquisas de correspondência de padrões

You can only use these lookups to query string fields.
The pattern-matching lookups are iexact, startswith, istartswith, endswith, iendswith, contains, icontains, regex, and iregex

prefetch_related()

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.

update()

You cannot use this method to perform queries that span multiple collections.

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

Chr

Não compatível.

ExtractQuarter

Não compatível.

MD5

Não compatível.

Now

Não compatível.

Ord

Não compatível.

Pad

Não compatível.

Repeat

Não compatível.

Reverse

Não compatível.

Right

Não compatível.

SHA1, SHA224, SHA256, SHA384, SHA512

Não compatível.

Sign

Não compatível.

Trunc

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

Funcionalidade Django
Suporte atual

Administrador do Django

Autenticação Django

GeoDjango

Parcialmente suportado. Essa estrutura da web é suportada com as seguintes limitações:

  • A API GIS QuerySet não é suportada.

  • O MongoDB não suporta nenhum identificador de sistema de referência geoespacial diferente 4326 de.

  • RasterField não é suportado.

O backend do MongoDB do Django suporta formulários do Django, mas o PolymorphicEmbeddedModelField e o PolymorphicEmbeddedModelArrayField não aparecem nos formulários.

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

createcachetable

Não compatível.

dumpdata

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

inspectdb

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

loaddata

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

Funcionalidade Django
Suporte atual

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.

Não compatível.

migrate --fake-initial opção

Não compatível.

Migrações para modelos embarcados

Parcialmente suportado. Os comandos de migração não detectam alterações nos campos do modelo incorporado ou nos modelos incorporados referenciados por PolymorphicEmbeddedModelField ou PolymorphicEmbeddedModelArrayField.

Biblioteca
Suporte atual

Parcialmente suportado. Para saber mais sobre os casos de uso e limitações desta biblioteca, consulte Filtro Django na documentação do Django MongoDB CLI.

Parcialmente suportado. Para saber mais sobre os casos de uso e limitações desta biblioteca, consulte Django rest framework na documentação do Django MongoDB CLI.

Parcialmente suportado. Para saber mais sobre os casos de uso e limitações desta biblioteca, consulte Django allauth na documentação do Django MongoDB CLI.

Parcialmente suportado. Para saber mais sobre os casos de uso e limitações desta biblioteca, consulte Barra de ferramentas de depuração do Django na documentação do Django MongoDB CLI.

Voltar

Transações