Você pode personalizar seus painéis incorporados adicionando:
Pré-filtros. Use a opção
preFiltercom o SDK de incorporação de Charts ou acrescente vários parâmetros de consulta às URLs de iframe.Filtros. Use a opção
filtercom 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.
Especificar campos filtráveis
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:
Na página Dashboards, selecione o dashboard desejado. Para obter instruções sobre como navegar até dashboards, consulte Dashboards.
Para o dashboard desejado, clique no botão e selecione Embed no menu suspenso.
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
Após selecionar todos os campos desejados, clique em Save abaixo do menu suspenso.
Dashboard viewers and applications which render the dashboard can now use filters based on the specified fields to display subsets of the original dashboard data. If a viewer attempts to use a filter for a field not included in the Allowed filter fields list, Atlas Charts returns an error.
Especificar subcampos filtráveis para campos com documentos incorporados
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.
Dados pré-filtrados em dashboards incorporados em um iframe
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.
Filtrar dados em dashboards incorporados em um iframe
Use o parâmetro de query filter para exibir somente dados que correspondam a um filtro MQL especificado em seu dashboard incorporado em um iframe.
You can only use the filter query parameter on the Unauthenticated dashboard. With unauthenticated dashboards, the dashboard Author specifies the fields that can be included in filters set by the embedding application code or added by dashboard viewers. To learn how to specify filterable fields, see Specify Filterable Fields.
Sintaxe de filtro
You can specify an MQL document as your filter query parameter provided that the fields used in your filter are in the list of allowed filterable fields.
Your filter must match the format used in a $match query and be either a:
query de nível superior
Exemplo
{ "quantity": { $gte: 20 } }
Observação
Você deve codificar caracteres especiais em URL do parâmetro de filtro.
Exemplo
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}}
Dados pré-filtrados em dashboards incorporados com o SDK
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" } })
Filtrar dados em dashboards incorporados com o SDK
You can add a filter to an embedded dashboard with the filter option. Filtering allows the dashboard author to only display data in the embedded dashboard which matches a specified MQL filter.
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 } } })
Injetar filtros específicos do usuário
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.
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 }; }