Docs Menu
Docs Home
/ /

Filtrar Charts incrustados

Puede personalizar sus gráficos incrustados agregando:

  • Prefiltros. Utilice el preFilter opción con el SDK de incrustación de gráficos o agregar varios parámetros de consulta a las URL de su iframe.

  • Filtros. Utilice la opción filter con el SDK de incrustación de gráficos o añada varios parámetros de consulta a las URL de sus iframes.

Puede usar prefiltros y filtros en el mismo panel, aunque su uso es opcional. Si se especifica, los prefiltros siempre se ejecutan después de las vistas de gráficos y antes de las consultas y filtros del panel.

Nota

Para incrustar gráficos desde sus paneles, debe configurar las opciones de incrustación en sus fuentes de datos. Para obtener instrucciones, consulte:

  • Incruste gráficos en su aplicación web

Puede filtrar gráficos incrustados y gráficos en paneles incrustados.

El autor de un gráfico especifica los campos que se pueden incluir en los prefiltros y filtros definidos por el código de la aplicación de incrustación o añadidos por los visualizadores de gráficos. Un autor de gráficos puede limitar el acceso a los datos permitiendo que solo se prefiltren o filtren ciertos campos. De forma predeterminada, no se permite ningún campo, lo que significa que el gráfico no se puede prefiltrar ni filtrar hasta que se permita explícitamente al menos un campo.

Para definir los campos filtrables para pre-filtros y filtros:

  1. Navegue hasta el panel que contiene el gráfico donde desea definir campos filtrables.

  2. Para el gráfico deseado, haga clic en el botón y seleccione Embed Chart desde el menú desplegable.

  3. En la sección Allowed filter fields, use el menú desplegable para seleccionar los campos que los usuarios pueden usar para filtrar datos en el gráfico. También puede escribir manualmente valores para agregar campos que no aparecen en el menú desplegable.

    Nota

    Esta opción solo aparece si ya tiene habilitado el acceso de incrustación autenticado o no autenticado.

    Para especificar en qué campos los visualizadores de gráficos pueden prefiltrar o filtrar datos, puede:

    • Utilice el menú desplegable para seleccionar los campos.

    • Escribe manualmente los valores para agregar campos que no estén en la lista desplegable.

    • Seleccione Allow all fields in the data source used in this chart.

  4. Cuando haya seleccionado todos los campos deseados, haga clic en Save debajo del menú desplegable.

Los visores de gráficos y las aplicaciones que los representan ahora pueden usar prefiltros y filtros basados ​​en los campos especificados para mostrar subconjuntos de los datos originales del gráfico. Si un visor intenta usar un filtro para un campo no incluido en el... Lista de campos de filtro permitidos, Atlas Charts devuelve un error.

Cuando agrega un campo a la lista Allowed filter fields cuyo valor es un documento incrustado, también debe especificar cada subcampo individual que desea permitir.

Ejemplo

Considere el siguiente documento:

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

Si solo agrega el favorites campo a la lista de campos permitidos,no se permite a los usuarios filtrar por ninguno de los subcampos favorites de. En su lugar, puede agregar uno o más subcampos a la lista individualmente favorites.color especificando, favorites.animal o.favorites.season

Utilice prefiltros para gráficos y paneles incrustados con un gran número de colecciones. Los prefiltros se ejecutan en una etapa anterior del proceso de creación del gráfico incrustado y permiten lo siguiente:

  • Filtra los datos con anticipación para reducir el tiempo de ejecución de la consulta.

  • Aplicar filtros antes de la ejecución de la consulta para las consultas de gráficos que contienen agregaciones.

Los prefiltros funcionan exactamente como filtros y usan la misma sintaxis. La única diferencia es que se ejecutan después de las vistas de gráficos y antes del inicio de las consultas y filtros de gráficos. Para obtener más información sobre el orden de los segmentos de la canalización, consulte la canalización de agregación.

Utilice el parámetro de consulta preFilter para filtrar datos antes de que comience a ejecutarse la consulta del gráfico, para el gráfico incrustado en un iframe.

Puede especificar un documento MQL como su preFilter parámetro de consulta siempre que los campos utilizados en su filtro estén en la lista de campos filtrables permitidos.

El siguiente ejemplo ilustra cómo funcionan juntos las vistas de gráficos, las consultas en la barra de consultas, los filtros y los prefiltros.

Consideremos el siguiente escenario:

  • La vista de gráficos contiene:

    [ { $project: { accommodates: 1, "bedrooms": 1, "address.country": 1 } } ]
  • La barra de consulta contiene:

    [ { $match: { accommodates: { $gte: 3 } } }, { $project: { address: 0 } } ]
  • El filtro en un gráfico incrustado contiene:

    { "bedrooms": { $lte: 3 } }
  • El prefiltro en un gráfico incrustado contiene:

    { "address.country": "Australia" }

En el ejemplo anterior, antes de ejecutar la consulta del gráfico, se aplica el prefiltro para buscar solo apartamentos en Australia. Después, se ejecuta la consulta del gráfico para identificar todos los apartamentos con capacidad para más de tres personas.

Utilice el parámetro de consulta filter para mostrar únicamente los datos que coincidan con un valor específico. Filtro MQL en su gráfico incrustado en un iframe.

Puede usar el parámetro de consulta filter en los gráficos Unauthenticated y Verified Signature. El comportamiento del filtrado varía según la configuración de autenticación:

  • En el caso de gráficos no autenticados, el autor del gráfico especifica los campos que pueden incluirse en los filtros definidos por el código de la aplicación de incrustación o que pueden añadir los visualizadores de gráficos. Para saber cómo especificar campos filtrables, consulte Especificar campos filtrables.

  • Con las gráficas que requieren una Firmada Verificada, se pueden filtrar todos los campos del documento. Sin embargo, se debe generar el filtro en el código del servidor e incluirlo como parte de la carga útil firmada.

Seleccione la pestaña adecuada para ver un ejemplo de cómo filtrar datos en un gráfico Unauthenticated y un gráfico Verified Signature:

Puede especificar un documento MQL como su filter parámetro de consulta siempre que los campos utilizados en su filtro estén en la lista de campos filtrables permitidos.

Su filtro debe coincidir con el formato utilizado en una consulta $match y ser:

  • Consulta de nivel superior

    Ejemplo

    { "quantity": { $gte: 20 } }
  • O dentro de expresiones booleanas ($and, $nor, $or)

    Ejemplo

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

Nota

Debe codificar en la URL los caracteres especiales del parámetro de filtro.

La siguiente URL de iframe src representa un gráfico que solo muestra documentos con un imdb.rating mayor o igual a 8:

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

La URL utiliza un parámetro filter codificado de {"imdb.rating":%20{$gte:%208}}. Descodificado, este filtro es:

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

Especifica un documento MQL como tu parámetro de query filter.

Su filtro debe coincidir con el formato utilizado en una consulta $match como se muestra en los siguientes ejemplos:

Ejemplo

{ "quantity": { $gte: 20 } }

Ejemplo

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

Al usar filtros en una firma verificada, las consultas MQL contienen caracteres que deben codificarse en URL antes de que el código del servidor calcule la firma. Cuando Charts verifica la firma, vuelve a codificar el filtro en URL mediante el componente encodeURI de JavaScript. función. Debe utilizar el mismo algoritmo de codificación para codificar su filtro.

Importante

Debes codificar los espacios en tu filtro como %20, en lugar de + o un espacio sin cambios.

Para ver cómo codificar correctamente un filtro MQL utilizando diferentes lenguajes de programación del lado del servidor, consulte Ejemplos de incrustación de gráficos Atlas en GitHub.

La siguiente URL de iframe src representa un gráfico que solo muestra documentos con un imdb.rating mayor o igual a 8:

https://charts.mongodb.com/charts-atlasproject1-piocy/embed/charts?
id=93584ddb-1115-4a12-afd9-5129e47bbb0d&
timestamp=1564156636&
expires-in=300&
filter=%7B%22imdb.rating%22%3A%20%7B%24gte%3A%208%7D%7D&
autoRefresh=60&
signature=8e0d92b33934c928f6c6974e2f0102ace77f56d851cb0d33893e84c359ab1043

La URL utiliza un parámetro filter codificado de %7B%22imdb.rating%22%3A%20%7B%24gte%3A%208%7D%7D. Descodificado, este filtro es:

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

Puede agregar un prefiltro a un gráfico incrustado con la preFilter opción. El prefiltro permite al autor del gráfico ejecutar un filtro después de las vistas del gráfico y antes de la ejecución de la consulta y los filtros del gráfico.

En el modal Embed Chart, debe especificar los campos que desea incluir en el prefiltro. El modal Embed Chart contiene un menú desplegable de campos para permitir el filtrado.

A continuación se utiliza la opción preFilter para representar solo documentos en Australia:

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

Puede agregar un filtro a un gráfico incrustado con la filter opción. El filtrado permite al autor del gráfico mostrar únicamente los datos del gráfico incrustado que coincidan con un filtro MQL específico.

En el modal Embed Chart, debe especificar los campos que desea incluir en el filtro. El modal Embed Chart contiene un menú desplegable de campos para permitir el filtrado.

A continuación, se utiliza la opción filter para representar solo documentos en los que el campo total es mayor que 100:

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

Al incrustar un gráfico que requiere acceso Authenticated, puede usar la configuración Injected function para inyectar un documento de filtro de MongoDB específico para cada usuario que lo visualice. La función tiene acceso al token de su proveedor de autenticación de incrustación mediante context.token y puede filtrar los datos del gráfico según dicho token.

Este filtro garantiza que los espectadores de un gráfico incrustado vean solo sus propios datos, lo que resulta útil al incrustar gráficos con información potencialmente confidencial.

Para inyectar un filtro específico para cada usuario, en la pestaña Authenticated del cuadro de diálogo Embed Chart, configure el parámetro Injected function en On. Especifique una función y haga clic en Save.

Ejemplo

La siguiente función de filtro solo representa datos donde el campo ownerId de un documento coincide con el valor del campo sub del token del proveedor de autenticación de incrustación:

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

Volver

iframe

En esta página