SQL FOREACH 能处理数组(json本身就是数组,数组没有key)吗?payload本身就是一个数组的那种。

[
{
“ts”: 1686894163648,
“values”: {
“value”: 27179.0
}
},
{
“ts”: 1686894163703,
“values”: {
“value”: 34706.0
}
}
]

类似这种本身就是个数组,外面没有大括号,数组没有key

可以的,参考:SQL 语法与示列 | EMQX 企业版文档

在eqmx调试过,直接对payload 进行Foreach, 调试窗口没有结果输出,
如果是对 payload内部的冠名数组Foreach,是可以输出结果的。

我写的脚本是这样的:
FOREACH
payload as p
FROM
“t/#”

因为payload本身就是数组,如下
[
{“ts”:1451649600512, “values”:{“respiratoryrate”:20, “heartrate”:130, “systolic”: 50}}
]

所以这样处理是有问题吗? 显示没有结果。

我在 5.3.0 上的测试结果和你的一样。看起来像是一个 BUG,我们这边调查下

好的,谢谢,期待你们的调查结果

有个临时的方案, 先使用 json_decode(payload) 手动解析一次 payload,例如:

FOREACH json_decode(payload) as p
DO p.ts as ts

谢谢,可以使用了