중첩된 객체 쿼리 - 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 }