您可以通过将各种查询参数附加到其iframe URL或使用filter
Charts Embedding SDK中的选项来自定义嵌入式图表。
图表作者指定可以包含在嵌入应用程序代码设置的过滤器中或图表查看器添加的字段中的字段。使用这些字段可以限制查看者可以访问的数据。默认情况下,没有任何字段被列入白名单,这意味着除非您将至少一个字段明确列入白名单,否则无法对图表进行过滤。
定义可过滤字段:
导航到包含要在其中定义可过滤字段的图表的仪表板。
对于所需的图表,单击 省略号h图标 按钮,然后从下拉列表中选择“ 嵌入图表 ”。
在“ 用户指定的过滤器”部分中,使用下拉菜单选择图表查看者可以在图表中使用过滤器数据的字段。您也可以手动键入值以添加下拉列表中未列出的字段。
注意
仅当您已经启用了“ 未经身份验证” 或“经过身份验证的嵌入”访问权限时,此选项才会出现。
选择所有所需字段后,请单击 下拉列表下方的保存。
现在,呈现图表的图表查看器和应用程序可以基于列入白名单的字段指定过滤器,以显示原始图表数据的子集。如果查看者尝试使用不在白名单中的字段来指定过滤器, 则会返回错误。
将值为嵌入式文档的字段列入白名单时,必须指定要添加到白名单中的每个子字段。
例
考虑以下文档:
如果你只添加favorites
字段添加到白名单中,但它
不能在任何的子场的观众授予权限的过滤器favorites
。相反,您可以通过指定,或favorites.color
,
将一个或多个子字段分别添加到白名单。favorites.animal
favorites.season
使用filter
查询参数仅显示与嵌入iframe的图表中的指定MQL过滤器匹配的数据。
您可以filter
在未经身份验证的图表和需要验证签名的图表上使用查询参数。每个身份验证设置的过滤行为都不同:
选择适当的选项卡以查看有关如何过滤未经身份验证的图表和“已验证的签名”图表中的数据的示例:
如果filter
过滤器中使用的字段位于可过滤字段的白名单中,则可以将MQL文档指定为查询参数
。
您的过滤器必须匹配$ match查询中使用的格式, 并且必须是:
注意
您必须对filter参数的特殊字符进行URL编码。
以下iframe src
URL呈现的图表仅显示imdb.rating
大于或等于的文档8
:
网址使用的编码filter
参数
{"imdb.rating":%20{$gte:%208}}
。解码后,此过滤器为:
指定一个MQL文档作为您的filter
查询参数。
您的过滤器必须匹配$ match查询中使用的格式 ,如以下示例所示:
例
例
在“已验证签名”中使用过滤器时,MQL查询包含的字符必须在服务器端代码计算签名之前进行URL编码。当Charts验证签名时,它会使用JavaScript encodeURIComponent 函数再次对过滤器进行URL编码 。您必须使用相同的编码算法来编码您的过滤器。
重要
您必须将过滤器中的空格编码为%20
,而不是+
原始空间。
要了解如何使用不同的服务器端编程语言正确编码MQL过滤器,请参阅GitHub上的MongoDB图表嵌入示例。
以下iframe src
URL呈现的图表仅显示imdb.rating
大于或等于的文档8
:
网址使用的编码filter
参数
%7B%22imdb.rating%22%3A%20%7B%24gte%3A%208%7D%7D
。解码后,此过滤器为: