Menu Docs
Página inicial do Docs
/
Atlas Charts
/ /

Filtrar painéis incorporados

Nesta página

  • Especificar campos filtráveis
  • Especificar subcampos filtráveis para campos com documentos incorporados
  • Dados pré-filtrados em dashboards incorporados em um iframe
  • Filtrar dados em dashboards incorporados em um iframe
  • Sintaxe de filtro
  • Dados pré-filtrados em dashboards incorporados com o SDK
  • Filtrar dados em dashboards incorporados com o SDK
  • Injetar filtros específicos do usuário

Você pode personalizar seus painéis incorporados adicionando:

  • Pré-filtros. Use a opção preFilter com o SDK de incorporação de Charts ou acrescente vários parâmetros de consulta aos URLs de iframe.

  • Filtros. Use a opção filter com o SDK de incorporação de Charts ou acrescente vários parâmetros de consulta às URLs de iframe.

Você pode usar pré-filtros e filtros no mesmo gráfico, embora seu uso seja opcional. Os pré-filtros, se especificados, sempre são executados após as visualizações e antes da consulta e dos filtros do painel. Para saber mais sobre a ordem dos segmentos de pipeline, consulte agregação pipeline.

Um autor de painel especifica os campos que podem ser incluídos em pré-filtros e filtros definidos pelo código do aplicação de incorporação ou adicionados por visualizadores de painel. Um autor de painel pode limitar o acesso aos dados permitindo que somente determinados campos sejam filtrados. Por padrão, nenhum campo é permitido, o que significa que o painel não pode ser filtrado até que você permita explicitamente pelo menos um campo.

Para definir campos filtráveis:

  1. Para o dashboard desejado, clique no botão e selecione Embed no menu suspenso.

  2. Na seção Allowed filter fields , clique em botão.

    Observação

    Essa opção só aparece se você já tiver o acesso de incorporação Não Autenticado ou Autenticado habilitado.

    Você pode especificar em quais campos os visualizadores do painel podem filtrar os dados:

    • Usando o menu suspenso para selecionar os campos

    • Digite manualmente valores para adicionar campos não listados no menu suspenso

    • Seleção Allow all fields in the data source used in this dashboard

  3. Após selecionar todos os campos desejados, clique em Save abaixo do menu suspenso.

Os visualizadores do painel e os aplicativos que renderizam o painel agora podem usar filtros com base nos campos especificados para exibir subconjuntos dos dados originais do painel. Se um visualizador tentar usar um filtro para um campo não incluído na lista Campos de filtro permitidos , o Atlas Charts retornará um erro.

Ao adicionar um campo à lista Allowed filter fields cujo valor é um documento incorporado, você também deve especificar cada subcampo individual que deseja permitir.

Exemplo

Considere o seguinte documento:

{
"name": "Alice",
"favorites" :
{
"color": "green",
"animal": "turtle",
"season": "autumn"
}
}

Se você adicionar apenas o campo favorites à lista de campos permitidos, ele não concederá aos visualizadores permissão para filtrar nenhum dos subcampos de favorites. Em vez disso, você pode adicionar um ou mais dos sub-campo à lista individualmente especificando favorites.color, favorites.animal ou favorites.season.

Use pré-filtros para gráficos e painéis incorporados com um grande número de coleções. Os pré-filtros são executados em um estágio anterior no pipeline do gráfico incorporado e permitem que você alcance os seguintes resultados:

  • Filtre os dados antecipadamente, para reduzir o tempo de execução da query

  • Aplicar filtros após as visualizações e antes da execução da query e filtros para queries que contenham agregações

Os pré-filtros se comportam exatamente como filtros e usam a mesma sintaxe. A única diferença é que eles são executados após as visualizações e antes do início das queries e filtros. Para saber mais sobre a ordem dos segmentos de pipeline, consulte agregação pipeline.

Use o parâmetro de query filter para exibir somente dados que correspondam a um filtroMQL especificado em seu dashboard incorporado em um iframe.

Você só pode usar o parâmetro de query filter no painel Unauthenticated . Com painéis não autenticados, o autor do painel especifica os campos que podem ser incluídos nos filtros definidos pelo código do aplicação de incorporação ou adicionados pelos visualizadores do painel. Para saber como especificar campos filtráveis, consulte Especificar campos filtráveis.

Você pode especificar um documento MQL como seu parâmetro de consulta do filter desde que os campos utilizados no seu filtro estejam na lista de campos filtráveis permitidos.

Seu filtro deve corresponder ao formato usado em uma query $match e ser um:

  • query de nível superior

    Exemplo

    { "quantity": { $gte: 20 } }
  • Ou dentro de expressões booleanas ( $and, $nor, $or)

    Exemplo

    { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] }

Observação

Você deve codificar caracteres especiais em URL do parâmetro de filtro.

O URL do iframe src a seguir renderiza um dashboard que só exibe documentos com um imdb.rating maior ou igual a 8:

https://charts.mongodb.com/charts-atlasproject1-piocy/embed/dashboards?
id=93584ddb-1115-4a12-afd9-5129e47bbb0d&
filter={"imdb.rating":%20{$gte:%208}}

A URL usa um parâmetro filter codificado de {"imdb.rating":%20{$gte:%208}}. Decodificado, este filtro é:

{"imdb.rating": {$gte: 8}}

Você pode adicionar um preFilter a um dashboard incorporado com a opção preFilter . A pré-filtragem permite que o autor do painel execute um filtro antes da execução da query.

No modal Embed , você deve especificar os campos que deseja incluir no pré-filtro. O modal Embed contém um menu suspenso de campos nos quais permitir a filtragem.

O seguinte usa a opção preFilter para representar somente documentos na Austrália:

createDashboard({
baseUrl: '<your-base-url>',
dashboardId: '<your-chart-id>',
width: 500,
height: 500,
preFilter: { "address.country": "Australia" }
})

Você pode adicionar um filtro a um painel incorporado com a opção filter . A filtragem permite que o autor do painel exiba apenas dados no painel incorporado que correspondam a um filtro MQL especificado.

No modal Embed , você deve especificar os campos que deseja incluir no filtro. O modal Embed contém um menu suspenso de campos nos quais permitir a filtragem.

O seguinte utiliza a opção filter para representar somente documentos nos quais o campo total é maior que 100:

createDashboard({
baseUrl: '<your-base-url>',
dashboardId: '<your-dashboard-id>',
width: 500,
height: 500,
filter: { "total": { "$gt": 100 } }
})

Ao incorporar um dashboard que exige acesso Authenticated , você pode usar a configuração Injected function para injetar um documento de filtro do MongoDB específico para cada usuário que visualizar o dashboard. A função tem acesso ao token do seu Provedor de Autenticação de Incorporação via context.token e pode filtrar os dados do painel com base no token.

Esse filtro garante que os visualizadores de um dashboard incorporado vejam apenas seus próprios dados, o que é útil ao incorporar um dashboard com informações potencialmente confidenciais.

Observação

Se você usar um provedor de autenticação do Atlas App Services , o context.token conterá o objeto de usuário do App Services para filtrar. Por exemplo, se você habilitar Dados de usuário personalizados para usuários do App Services, o objeto de usuário estará disponível em context.token.custom_data.

Para injetar um filtro específico para cada usuário, na guia Authenticated da caixa de diálogo Embed , defina o Injected function`setting to :guilabel:`On. Especifique uma função e clique em Save.

Exemplo

A função de filtro a seguir só renderiza dados em que o campo ownerId de um documento corresponda ao valor do campo sub do token do provedor de autenticação de incorporação:

function getFilter(context) {
return { ownerId: context.token.sub };
}

Voltar

iframe