Puede personalizar sus paneles integrados agregando:
Prefiltros. Utilice el
preFilteropció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
filtercon 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 gráfico, aunque su uso es opcional. Los prefiltros, si se especifican, siempre se ejecutan después de las vistas y antes de la consulta y los filtros del panel. Para obtener más información sobre el orden de los segmentos de la canalización, consulte canalización de agregación.
Especificar campos filtrables
El autor de un panel 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 del panel. Un autor de panel puede limitar el acceso a los datos permitiendo que solo se filtren ciertos campos. De forma predeterminada, no se permiten campos, lo que significa que el panel no se puede filtrar hasta que se permita explícitamente al menos un campo.
Para definir campos filtrables:
Desde Dashboards En la página , seleccione el panel deseado. Para obtener instrucciones sobre cómo acceder a los paneles, consulte Paneles.
Para el panel deseado, haga clic en el botón y seleccione Embed en el menú desplegable.
En la sección Allowed filter fields, haga clic en el botón .
Nota
Esta opción solo aparece si ya tiene habilitado el acceso de incrustación autenticado o no autenticado.
Puede especificar en qué campos los espectadores del panel pueden filtrar datos:
Usando el menú desplegable para seleccionar los campos
Introducir manualmente valores para añadir campos que no aparezcan en el desplegable
Seleccionando Allow all fields in the data source used in this dashboard
Cuando haya seleccionado todos los campos deseados, haga clic en Save debajo del menú desplegable.
Los visualizadores de paneles y las aplicaciones que los representan ahora pueden usar filtros basados en los campos especificados para mostrar subconjuntos de los datos originales del panel. Si un visualizador intenta usar un filtro para un campo no incluido en el... Lista de campos de filtro permitidos, Atlas Charts devuelve un error.
Especificar subcampos filtrables para campos con documentos incrustados
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
Prefiltrar datos en paneles integrados en un iframe
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 obtener los siguientes resultados:
Filtrar los datos con anticipación para reducir el tiempo de ejecución de la consulta
Aplicar filtros después de las vistas y antes de la ejecución de la consulta y filtros para consultas que contienen agregaciones
Los prefiltros se comportan exactamente como filtros y utilizan la misma sintaxis. La única diferencia es que se ejecutan después de las vistas y antes del inicio de las consultas y los filtros. Para obtener más información sobre el orden de los segmentos de la canalización, consulte la canalización de agregación.
Filtrar datos en paneles incrustados en un iframe
Utilice el parámetro de consulta filter para mostrar únicamente los datos que coincidan con un valor específico. Filtro MQL en su panel de control incrustado en un iframe.
Solo se puede usar el filter parámetro de consulta en el Unauthenticated panel. En paneles no autenticados, el autor del panel especifica los campos que se pueden incluir en los filtros definidos por el código de la aplicación de incrustación o que pueden añadir los visualizadores del panel. Para saber cómo especificar campos filtrables, consulte Especificar campos filtrables.
Sintaxis de filtro
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.
Ejemplo
La siguiente URL de iframe src representa un panel que solo muestra documentos con un imdb.rating mayor o igual a 8:
https://charts.mongodb.com/charts-atlasproject1-piocy/embed/dashboards? id=93584ddb-1115-4a12-afd9-5129e47bbb0d& filter={"imdb.rating":%20{$gte:%208}}
La URL utiliza un parámetro filter codificado de {"imdb.rating":%20{$gte:%208}}. Descodificado, este filtro es:
{"imdb.rating": {$gte: 8}}
Prefiltrar datos en paneles integrados con el SDK
Puede agregar un prefiltro a un panel integrado con la preFilter opción. El prefiltro permite al autor del panel ejecutar un filtro antes de ejecutar la consulta.
En el modal Embed, debe especificar los campos que desea incluir en el prefiltro. El modal Embed 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:
createDashboard({ baseUrl: '<your-base-url>', dashboardId: '<your-chart-id>', width: 500, height: 500, preFilter: { "address.country": "Australia" } })
Filtrar datos en paneles integrados con el SDK
Puede agregar un filtro a un panel incrustado con la filter opción. El filtrado permite al autor del panel mostrar únicamente los datos del panel incrustado que coincidan con un filtro MQL específico.
En el modal Embed, debe especificar los campos que desea incluir en el filtro. El modal Embed 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:
createDashboard({ baseUrl: '<your-base-url>', dashboardId: '<your-dashboard-id>', width: 500, height: 500, filter: { "total": { "$gt": 100 } } })
Inyectar filtros específicos del usuario
Al incrustar un panel 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 panel según dicho token.
Este filtro garantiza que los espectadores de un panel integrado solo vean sus propios datos, lo que resulta útil cuando se integra un panel 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, configure Injected function`setting to :guilabel:`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 }; }