docs-v2/content/enterprise_influxdb/v1/flux/guides/exists.md

2.2 KiB

title seotitle list_title description menu weight canonical list_code_example
Check if a value exists Use Flux to check if a value exists Exists Use the Flux `exists` operator to check if a record contains a key or if that key's value is `null`.
enterprise_influxdb_v1
name parent
Exists Query with Flux
20 /influxdb/v2/query-data/flux/exists/ ##### Filter null values ```js data |> filter(fn: (r) => exists r._value) ```

Use the Flux exists operator to check if a record contains a key or if that key's value is null.

p = {firstName: "John", lastName: "Doe", age: 42}

exists p.firstName
// Returns true

exists p.height
// Returns false

If you're just getting started with Flux queries, check out the following:

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: "db/rp")
    |> 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,
        }),
    )