influxDB: How to convert field to tag in influxDB v2.0

You can remove the field filter to get all your fields.
Here you go:

myField = from(bucket: "Air sensor sample dataset")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "airSensors")
  |> filter(fn: (r) => r["_field"] == "co")
  |> filter(fn: (r) => r["sensor_id"] == "TLM0100")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> findRecord(fn: (key) => true, idx: 0)

data = from(bucket: "Air sensor sample dataset")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "airSensors")
  |> filter(fn: (r) => r["_field"] != "co")
  |> filter(fn: (r) => r["sensor_id"] == "TLM0100")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)

data
  |> map(fn: (r) => ({ r with muyfield: string(v: myField._value)}))
  |> set(key: "_measurement", value: "my_new_measurement")
  |> to(
  bucket: "my-bucket",
  org: "my-org",
  timeColumn: "_time",
  tagColumns: ["myfield", "sensor_id"]
)

You don’t have to include the tagColumns as all columns with string values will default to tags, but you can define them explicitly.

1 Like