文档文档

使用 reduce() 构建 JSON。

使用 http.post() 在 JSON 正文中发送数据

使用 reduce() 函数创建 JSON 对象,以便将其作为正文包含在 http.post() 中。

  1. 导入 array 包以查询数据和构造表,以及 http 包以通过 http 传输 JSON。

  2. 使用 array.from() 查询数据并构造表。或者,使用另一种方法 使用 Flux 查询数据

  3. 使用 reduce() 函数构造 JSON 对象,然后使用 yield() 存储 reduce 的输出。此表看起来像

    字段tag
    example-field:[“3"4"1{example-tag-key:[“bar"bar"bar
  4. 使用 map() 函数将两个组件合并到一个 JSON 对象中,然后使用第二个 yield() 函数将此对象存储为 final JSON。此表看起来像

    字段tagfinal
    example-field:[“3"4"1{example-tag-key:[“bar"bar"bar{example-tag-key:[“bar"bar"bar] , example-field:[“3"4"1]}
  5. 使用 findRecord() 函数从最后一列(JSON)中提取值。

  6. 使用 http.post() 指定发送 JSON 的 URL。在此示例中,我们使用 Post Test Server 作为 URL 发送 JSON,并测试 http.post() 函数。

import "array"
import "http"

 
data = array.from(
        rows: [
            {_time: 2020-01-01T00:00:00Z, _field: "example-field", _value: 3, foo: "bar"},
            {_time: 2020-01-01T00:01:00Z, _field: "example-field", _value: 4, foo: "bar"},
            {_time: 2020-01-01T00:02:00Z, _field: "example-field", _value: 1, foo: "bar"},
        ],
    )
  
    |> reduce(
            fn: (r, accumulator) => ({tag:accumulator.tag + "\"" + r.foo, 
                                    field : accumulator.field + "\"" + string(v:r._value)
                                    }),
            identity: {tag: "{example-tag-key:[", 
                    field: "example-field:[" }
    )
    |> yield(name: "output of reduce")
    |> map(fn: (r) => ({ r with tag: r.tag + "]" }))
    |> map(fn: (r) => ({ r with field: r.field + "]}" }))
    |> map(fn: (r) => ({ r with final: r.tag + " , " + r.field}))
    |> yield(name: "final JSON")
    |> findRecord(
        fn: (key) => true,
        idx: 0,
        )


http.post(
    url: "https://ptsv2.com/t/c4x38-1656014222/post",
    headers: {"Content-type": "application/json"},
    data: bytes(v: data.final),
    )

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2