Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu 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 próximos recursos 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

As queries que usam o $expr operador podem ser executadas lentamente, pois esse operador geralmente não consegue prever qual índice usar e executa uma verificação de collection. Algumas QuerySet operações, como queries que especificam uma in pesquisa, usam $expr para avaliar os resultados da query e apresentam desempenho degradado.
Planejamos resolver esse problema de desempenho em uma versão pós-GA.

$lookup operations

As queries que usam o $lookup operador podem ser executadas lentamente. Para melhorar o desempenho, recomendamos que você use modelos incorporados em vez do $lookup operador quando possível. Para saber mais sobre como reduzir as $lookup operações de, consulte o guia Reduza as operações de $lookup na documentação do MongoDB Atlas .

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 pesquisa Vector Search

Parcialmente suportado. Você pode usar o backend MongoDB do Django para criar índices básicos de índice de pesquisa 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 de tipos suportados, consulte a seção Campos BSON do MongoDB do guia Criar modelos para representar coleções.

Tipo de dados BSON
Suporte atual

Object


Você pode usar modelos incorporados e modelos incorporados polimórficos para representar objetos. Se você estiver usando o campo EmbeddedModelField, as seguintes limitações se aplicam:
* Campos de chave estrangeira não são suportados.
* 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.

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 MongoDB

Excluir operações

Consultas geoespaciais


Utilize o método bruto_aggregate() para executar queries geoespaciais em vez da API QuerySet do GIS.

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


Usar modelos para representar documentos do MongoDB .

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


Você pode usar a API de transações customizadas do Django MongoDB Backend com as seguintes limitações:
* QuerySet.union() não é suportado em uma transação.
* Não há suporte para pontos de salvamento ou blocos atômicos aninhados. O bloco atômico mais externo inicia uma transação e os blocos atômicos subsequentes não têm efeito.
* Seu MongoDB deployment deve ser um conjunto de réplicas ou cluster fragmentado.

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

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

DurationField


DurationField armazena milissegundos em vez de microssegundos.

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 CASCADE deletes 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()


Você não pode usar este método para executar queries que abrangem várias coleções.

difference()

Não compatível.

extra()

Não compatível.

intersection()

Não compatível.

Pesquisas de correspondência de padrões


Você só pode usar essas pesquisas para consultar campos de string.
As pesquisas de correspondência de padrão são,,,,,,,iexact startswithistartswithendswithiendswithcontainsicontainsregexe 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.

select_for_update()

Não compatível.

update()


Você não pode usar este método para executar queries que abrangem várias coleções.

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.

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.