Check if a value exists
This page documents an earlier version of InfluxDB. InfluxDB v2.7 is the latest stable version. View this page in the v2.7 documentation.
Use the exists
operator to check if a row record contains a column or if a column’s value is null.
(r) => exists r.column
If you’re just getting started with Flux queries, check out the following:
- Get started with Flux for a conceptual overview of Flux and parts of a Flux query.
- Execute queries to discover a variety of ways to run your queries.
Use exists
with row functions ( filter(), map(), reduce()) to check if a row includes a column or if the value for that column is null.
Filter null values
from(bucket: "example-bucket")
|> range(start: -5m)
|> filter(fn: (r) => exists r._value)
Map values based on existence
from(bucket: "default")
|> range(start: -30s)
|> map(
fn: (r) => ({r with
human_readable: if exists r._value then
"${r._field} is ${string(v: r._value)}."
else
"${r._field} has no value.",
}),
)
Ignore null values in a custom aggregate function
customSumProduct = (tables=<-) => tables
|> reduce(
identity: {sum: 0.0, product: 1.0},
fn: (r, accumulator) => ({r with
sum: if exists r._value then
r._value + accumulator.sum
else
accumulator.sum,
product: if exists r._value then
r.value * accumulator.product
else
accumulator.product,
}),
)
Check if a statically defined record contains a key
When you use the record literal syntax to statically define a record, Flux knows the record type and what keys to expect.
- If the key exists in the static record,
exists
returnstrue
. - If the key does not exist in the static record, because the record type is statically known,
exists
returns an error.
import "internal/debug"
p = {
firstName: "John",
lastName: "Doe",
age: 42,
}
exists p.firstName
// Returns true
exists p.height
// Returns "error: record is missing label height"
Related
当前内容版权归 jasper-zhang 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 jasper-zhang .