嵌套对象查询 - AWS IoT Core

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

嵌套对象查询

您可以使用嵌套SELECT子句来查询数组和内部JSON对象中的属性。受SQL版本 2016-03-23 及更高版本支持。

考虑以下MQTT消息:

{ "e": [ { "n": "temperature", "u": "Cel", "t": 1234, "v": 22.5 }, { "n": "light", "u": "lm", "t": 1235, "v": 135 }, { "n": "acidity", "u": "pH", "t": 1235, "v": 7 } ] }

您可以使用以下规则将值转换为新数组。

SELECT (SELECT VALUE n FROM e) as sensors FROM 'my/topic'

该规则生成以下输出。

{ "sensors": [ "temperature", "light", "acidity" ] }

使用相同的MQTT消息,您还可以使用以下规则查询嵌套对象中的特定值。

SELECT (SELECT v FROM e WHERE n = 'temperature') as temperature FROM 'my/topic'

该规则生成以下输出。

{ "temperature": [ { "v": 22.5 } ] }

您也可以使用更复杂的规则来平展输出。

SELECT get((SELECT v FROM e WHERE n = 'temperature'), 0).v as temperature FROM 'topic'

该规则生成以下输出。

{ "temperature": 22.5 }