Check if a value exists
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 exists in the static record, but has a null value,
exists
returnsfalse
. - 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,
height: debug.null(type: "int"),
}
exists p.firstName
// Returns true
exists p.height
// Returns false
exists p.hairColor
// Returns "error: record is missing label hairColor"
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.