计算新数据字段
您可以将集合中一个或多个字段的数据合并到单个计算字段中。 例如,您可以:
将以小时为单位的字段转换为以秒为单位,或将以华氏度为单位的字段转换为以摄氏度为单位
用价格字段乘以数量字段,得出总数
将多个行项目字段合并到一个数组以计算总计
Considerations
创建计算字段
您可以用简单表达式或 MQL 表达式操作符合并现有字段的数据来创建计算字段。
注意
计算字段的定义可以包含简单表达式语言或运算符表达式语言。 您不能在同一定义中 同时使用简单表达式语言和运算符表达式语言。
要创建计算字段:
在 Fields 窗格的角落,单击 Add Field。
选择 Calculated 。
输入您要定义的计算字段的 Field Name(字段名)。您可以使用点符号指定一个嵌套字段。例如,
metadata.target
。单击 Save Field(连接)。
计算字段在 Fields 窗格中以斜体显示。
简单表达式
您可以在计算字段中使用以下简单的表达式语言。
表达式语言 | 例子 |
---|---|
字段名称 | orderTotal 'orderTotal' "orderTotal" |
数字字面值 | 2 0.5 |
数学运算符 | + - * / |
括号 | ( ) |
表达式中不包含引号字符串外的空白。
例子
以下示例是定义计算字段的有效简单表达式。
将 bathrooms
字段添加到 bedrooms
字段:
bathrooms + bedrooms
将 total amount
字段乘以 1.1:
'total amount' * 1.1
从 sensor.temp
字段中减去 32
,然后乘以 5
并除以 9
:
(sensor.temp - 32)*5/9
操作符表达式
可以使用表达式操作符定义更复杂的计算字段。
例子
以下示例是定义计算字段的有效操作符表达式。
将 price
字段乘以 0.075
:
{ $multiply: [ "$price", 0.075 ] }
将多个行项目字段合并到一个数组以计算总计:
{ $reduce: { input: '$items', initialValue: 0, in: { $sum : ["$$value", { $multiply: ["$$this.price", "$$this.quantity"] } ] } } }
提示
可以在另一个计算字段的定义中使用一个计算字段。
例如,使用如下定义创建 salesTax
计算字段:
{ $multiply: [ "$price", 0.075 ] }
接下来,可以创建一个 totalCost
计算字段,在其定义中使用 salesTax
字段:
{ $sum: ["$price", "$salesTax"] }
字面字符串
您可以使用 $literal
操作符,将计算字段的值设置为字符串。
例子
以下字段定义分配值 my string
:
{ $literal: "my string" }
编辑计算字段
您可以修改计算字段的定义。
在 Fields(字段)窗格中,单击要修改的计算字段的名称旁边的 Ellipsis (...)(省略号 (...))。
选择 Modify field 。
更新 Value Expression(值表达式)。
单击 Save Field(连接)。
如果在图表中使用计算字段,则图表会刷新以反映新的计算字段定义。
删除计算字段
在删除计算字段时,Atlas Charts 重新对数据源进行采样,更新 Fields(字段)窗格,并刷新图表。如果将计算字段用于编码或过滤器,即使从 Fields(字段)窗格中删除,该字段仍保留在图表中。
要删除计算字段,请执行以下操作:
在 Fields 窗格中,点击要删除的计算字段旁边的 Ellipsis (...)。
选择 Remove field 。