Skip to main content
Filtros restringem as linhas que um job de extração lê. Você os associa por campo, e o Fetcher os converte em uma cláusula WHERE num motor relacional ou em um documento de consulta no MongoDB.

Onde ficam os filtros


Os filtros ficam ao lado de mappedFields na requisição, em quatro níveis: fonte de dados, depois tabela, depois campo, depois o objeto de operador.
Toda fonte de dados nomeada em filters também precisa aparecer em mappedFields. O Manager rejeita um filtro que aponta para uma fonte de dados desconhecida.

Os dez operadores


Todo operador recebe um array JSON, mesmo quando ele guarda um único valor. O array é o formato. O que muda por operador é a quantidade de elementos. Exemplos de cada formato:

Como os operadores se combinam


Você pode colocar vários operadores no mesmo campo. O Fetcher combina todos eles com AND. O exemplo { "gt": [100], "lte": [5000] } se lê como amount > 100 AND amount <= 5000. Filtros em campos diferentes também se combinam com AND. Não existe OR entre campos. Use in quando você precisar de OR sobre os valores de um mesmo campo.

Regras de validação


O Fetcher rejeita um filtro antes de montar a consulta quando o formato do valor está errado:
  • between com uma quantidade diferente de dois falha com between operator for field 'X' must have exactly 2 values, got N.
  • gt, gte, lt e lte com uma quantidade diferente de um falham com a mensagem correspondente a cada operador.
Os demais operadores usam o formato que a tabela define:
  • like recebe exatamente um padrão de texto.
  • eq, in, nin e ne recebem um ou mais valores.

Campos que parecem identificadores


Nos motores relacionais, o Fetcher inspeciona o nome do campo. Um nome que contém id, _id, uuid, template_id, organization_id, user_id ou account_id é tratado como campo UUID. Todo valor de texto sob eq, gt, gte, lt, lte, between, in e nin precisa então ser um UUID válido. Um valor que não converte faz a requisição falhar e nomeia o campo. Dois operadores ficam fora dessa verificação: ne e like. O MongoDB não executa essa verificação.

Datas em um filtro between


Nos motores relacionais, o Fetcher estende o limite superior de um filtro between até o fim do dia quando três condições valem ao mesmo tempo:
  1. O nome do campo parece de data. Ele contém date, time, _at, created_at, updated_at, deleted_at ou completed_at.
  2. Os dois limites parecem textos de data.
  3. O limite superior tem exatamente dez caracteres, na forma YYYY-MM-DD.
O Fetcher então reescreve o limite superior para YYYY-MM-DDT23:59:59.999Z. Um filtro ["2026-06-01", "2026-06-30"] portanto inclui o dia 30 de junho inteiro. No MongoDB, os dois limites valem exatamente como você os escreve. Para cobrir um dia inteiro ali, escreva o limite superior como um timestamp completo: ["2026-06-01", "2026-06-30T23:59:59.999Z"].

Filtros no MongoDB


O MongoDB aceita os mesmos dez operadores, e o Fetcher os traduz para operadores de consulta: O padrão de like vira uma expressão regular: % vira .*, e _ vira .. O Fetcher ancora o padrão no início, a menos que ele comece com %, e no fim, a menos que ele termine com %. A opção i torna a correspondência insensível a maiúsculas e minúsculas.

Correspondência da chave da tabela


A chave de tabela em filters precisa encontrar sua tabela em mappedFields. PostgreSQL e SQL Server aceitam três formas da chave: o nome exato da tabela, o nome sem o prefixo de esquema e o nome com o esquema padrão acrescentado. Um filtro com a chave transactions portanto ainda se aplica à tabela public.transactions. MySQL, Oracle e MongoDB fazem a correspondência exata da chave. Escreva a chave exatamente como você escreveu o nome da tabela ou da coleção em mappedFields.

Próximos passos


Jobs de extração

A requisição completa do job e o caminho da criação até o resultado armazenado.

Fontes de dados

O que se comporta de forma diferente em cada um dos cinco motores de banco de dados.