嵌套对象查询 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

嵌套对象查询

您可以使用嵌套 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 }