QueryImplementingThingsOptimized 서비스 사용
사물 형태 및 사물 템플릿에 대한 QueryImplementingThingsOptimized 서비스를 호출하려면 다음 JavaScript 서비스를 사용할 수 있습니다.
• QueryImplementingThingsOptimized
• QueryImplementingThingsOptimizedWithTotalCount
QueryImplementingThings 서비스 호출 방식과 동일하게 이러한 서비스를 호출할 수 있습니다. 자세한 내용은
QueryImplementingThings 서비스 사용을 참조하십시오. 예:
ThingShapes["shape1"].QueryImplementingThingsOptimized
WithTotalCount는 질의에 적용된 최대 항목 제한 또는 오프셋을 무시하고 결과 및 총 행 수를 포함하는 인포테이블을 반환합니다. 예를 들어, maxItems가 5로 설정된 질의를 수행하는 경우 5개의 행이 반환되지만 총 행 수가 이러한 제한을 적용하기 전에 찾은 총 행 수인 100과 같을 수 있습니다.
매개 변수
다음 매개 변수가 QueryImplementingThingsOptimized에 적용됩니다.
• QueryImplementingThings에 대한 매개 변수:
◦ EntityReference parentEntity,
◦ int nMaxItems
◦ TagCollection tagsToCompare,
◦ String nameMask,
◦ Query query,
◦ boolean withData,
◦ boolean withPermissions,
◦ Collection<String> basicPropertyNames,
◦ Collection<String> propertyNames,
• QueryImplementingThingsOptimized에 대한 추가 매개 변수:
◦ networkName
필터링할 네트워크 이름입니다. 질의는 해당 네트워크의 사물에서 찾은 결과만 반환합니다.
◦ networkParentNode
networkName에 지정된 네트워크의 최상위 노드 이름입니다. 질의는 네트워크에 지정된 상위 노드의 모든 하위 노드를 반환합니다.
◦ networkMaxDepth
상위 노드의 하위 노드를 검색할 수준입니다. 1은 직접 하위를 반환하고 2는 하위의 하위를 반환합니다. 0 또는 default/null로 설정된 경우 하위의 전체 계층을 반환합니다.
◦ offset
지정된 값에 따른 결과의 오프셋입니다. 예를 들어, 데이터베이스에 오프셋이 5인 200개의 결과가 있는 경우 5개~200개(합계: 195개)의 결과가 반환됩니다.
offset을 maxItems와 조합하여 페이지 매김을 시뮬레이션할 수 있습니다. 더 많은 결과를 위해 추가 질의할수록 질의 시간이 느려질 수 있습니다.
예를 들어, 1 ~ 1,000개의 사물이 있고 maxItems가 5인 경우 각 페이지에 5개의 결과가 표시됩니다.
▪ 1페이지: offset이 0입니다. maxItems가 5이므로 처음 5개의 결과가 반환됩니다.
▪ 2페이지: offset이 5입니다. 6 ~ 10개의 결과가 반환됩니다.
▪ 3페이지: offset이 10입니다. 11 ~ 15개의 결과가 반환됩니다.
▪ 이런 식으로 결과가 반환됩니다.
이 예에서는 반환되는 결과의 수가 적으므로 질의 시간이 빠릅니다.
제한
QueryImplementingThingsOptimized 서비스는 데이터베이스 대신 캐시를 기준으로 검색하며 다음 제한 사항이 적용됩니다.
• 지정된 사물 형태 또는 사물 템플릿의 속성만 입력할 수 있습니다. 속성은 propertyNames 매개 변수를 사용하여 지정할 수 있습니다. 속성이 사물에는 있지만 지정된 사물 형태에는 없는 경우 서비스에서 예외가 발생합니다.
• 암호 유형을 필터링하거나 정렬할 수 없습니다.
• 권한 때문에 필터링할 수 없는 속성의 사물은 무시됩니다. 필터링되지 않고 표시되지 않는 속성이 요청된 경우 해당 속성은 해당 사물에 대해 null로 반환됩니다.
예를 들어, Thing1, Thing2 및 Thing3이 존재하는 지정된 사물 형태의 prop1 속성을 필터링하려고 합니다. Thing1에 대해 prop1을 볼 수 없습니다. 따라서 Thing1은 해당 값이 필터와 일치해도 무시됩니다. Thing2 및 Thing3만 반환됩니다.
• 다음 기본 속성은 필터링하거나 정렬할 수 없습니다. homeMashup, Avatar, projectName 및 isSystemObject