Puedes personalizar tus tableros incrustados añadiendo:
Pre-filtros. Usa el
preFilteropción con el SDK de Charts Embedding o agregar varios parámetros de query a tus URLs de iframes.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 tanto pre-filtros como filtros en la misma gráfica, 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 tablero. Para obtener más información sobre el orden de los segmentos del pipeline, consulta pipeline de agregación.
Especificar campos filtrables
Un Autor de tablero de control especifica los campos que pueden incluirse en los prefiltros y filtros establecidos por el código de la aplicación adjunta o añadidos por los espectadores del tablero de control. Un autor de tablero puede limitar el acceso a los datos permitiendo solo que se filtren determinados campos. Por default, no se permite ningún campo, lo que significa que el tablero no puede filtrarse hasta que se permita explícitamente al menos un campo.
Para definir campos filtrables:
Desde Dashboards página, seleccione el tablero deseado. Para obtener instrucciones sobre cómo navegar a los Tableros, consulte Tableros.
Para el tablero 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 tienes habilitado el acceso de inserción No autenticado o 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... En la lista de Campos de filtro permitidos, Atlas Charts devuelve un error.
Especificar subcampos filtrables para campos con documentos incrustados
Cuando agregue un campo a la lista Allowed filter fields cuyo valor sea 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 sólo añades el campo favorites a la lista de campos permitidos, no otorga permiso a los espectadores para filtrar cualquiera de los subcampos de favorites. En su lugar, puede añadir uno o más de los subcampos a la lista de forma individual especificando favorites.color, favorites.animal, o favorites.season.
Filtrar previamente los datos en Tableros 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:
Filtra los datos de forma temprana para reducir el tiempo de ejecución de la query
Aplica filtros después de las vistas y antes de la ejecución de la query, y aplica filtros para queries que contienen agregaciones
Los pre-filtros se comportan exactamente igual que los filtros y utilizan la misma sintaxis. Su única diferencia radica en que se ejecutan después de las vistas y antes de que comiencen las consultas y los filtros. Para obtener más información sobre el orden de los segmentos de la pipeline, consulta la pipeline de agregación.
Filtrar datos en tableros integrados en un iframe
Utilice el parámetro de consulta filter para mostrar únicamente los datos que coincidan con un valor específico. Filtro de MQL en su tablero incrustado en un iframe.
Solo se puede usar el parámetro de query filter en el tablero Unauthenticated. Con tableros que no requieren autenticación, el tablero Autor especifica los campos que pueden incluirse en los filtros establecidos por el código de aplicación de incrustación o agregados por los espectadores del tablero. Para aprender cómo especificar campos filtrables, consulta 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.
Tu filtro debe coincidir con el formato utilizado en una $match query y ser uno de los siguientes:
Consulta de nivel superior
Ejemplo
{ "quantity": { $gte: 20 } } O dentro de expresiones booleanas ( $and, $nor, $or)
Ejemplo
{ $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] }
Nota
Debes codificar en URL los caracteres especiales del parámetro de filtro.
Ejemplo
El siguiente iframe URL src muestra un tablero que sólo exhibe 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}}
Filtrar previamente datos en tableros incrustados con el SDK
Puedes añadir un preFiltro a un tablero embebido con la opción preFilter. El prefiltrado permite al autor del tablero ejecutar un filtro antes de la ejecución de la query.
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 tableros integrados con el SDK
Puedes añadir un filtro a un tablero incrustado con la opción filter. La aplicación de filtros permite al autor del tablero mostrar solo los datos en el tablero incrustado que coinciden con el filtro MQL especificado.
En la ventana emergente Embed, debes especificar los campos que deseas incluir en el filtro. El Embed modal contiene un menú desplegable de campos en los que permitir el filtrado.
El siguiente usa la opción filter para representar solo los 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
Cuando se incrusta un tablero que requiere acceso a Authenticated, puedes usar la configuración Injected function para inyectar un documento de filtro de MongoDB específico para cada usuario que vea el tablero. La función tiene acceso al token de su proveedor de autenticación de inteligencia artificial a través de context.token, y puede filtrar los datos del tablero según el token.
Este filtro garantiza que los espectadores de un tablero incrustado sólo vean sus propios datos, lo que resulta útil cuando se incrusta un tablero 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 muestra los datos en los que el campo ownerId de un documento coincide con el valor del campo sub del token del Proveedor de Autenticación de Embedding:
function getFilter(context) { return { ownerId: context.token.sub }; }