Composer의 ThingWorx 모델 정의 > 모델링 > 코드 조각 > QueryImplementingThingsOptimized
QueryImplementingThingsOptimized
설명
QueryImplementingThingsOptimized 서비스는 사물 형태와 사물 템플릿을 효율적으로 질의하는 데 사용됩니다. 두 가지 JavaScript 서비스를 제공합니다.
QueryImplementingThingsOptimized
QueryImplementingThingsOptimizedWithTotalCount
QueryImplementingThings 서비스 호출 방식과 동일하게 이러한 서비스를 호출할 수 있습니다. 예: ThingShapes["shape1"].QueryImplementingThingsOptimized
WithTotalCount는 질의에 적용된 최대 항목 제한 또는 오프셋을 무시하고 결과 및 총 행 수를 포함하는 인포테이블을 반환합니다. 예를 들어, maxItems5로 설정된 질의를 수행하는 경우 5개의 행이 반환되지만 총 행 수가 이러한 제한을 적용하기 전에 찾은 총 행 수인 100과 같을 수 있습니다.
QueryImplementingThingsOptimized 서비스는 데이터베이스 대신 캐시를 기준으로 검색하며 다음 제한 사항이 적용됩니다.
지정된 사물 형태 또는 사물 템플릿의 속성만 입력할 수 있습니다. 속성은 propertyNames 매개 변수를 사용하여 지정할 수 있습니다. 속성이 사물에는 있지만 지정된 사물 형태에는 없는 경우 서비스에서 예외가 발생합니다.
암호 유형을 필터링하거나 정렬할 수 없습니다.
권한 때문에 필터링할 수 없는 속성의 사물은 무시됩니다. 필터링되지 않고 표시되지 않는 속성이 요청된 경우 해당 속성은 해당 사물에 대해 null로 반환됩니다.
예를 들어, Thing1, Thing2Thing3이 존재하는 지정된 사물 형태의 prop1 속성을 필터링하려고 합니다. Thing1에 대해 prop1을 볼 수 없습니다. 따라서 Thing1은 해당 값이 필터와 일치해도 무시됩니다. Thing2Thing3만 반환됩니다.
다음 기본 속성은 필터링하거나 정렬할 수 없습니다. homeMashup, Avatar, projectNameisSystemObject
입력
매개 변수 이름
설명
기본 유형
networkName
필터링할 네트워크 이름입니다. 질의는 해당 네트워크의 사물에서 찾은 결과만 반환합니다.
STRING
networkParentNode
networkName에 지정된 네트워크의 최상위 노드 이름입니다. 질의는 네트워크에 지정된 상위 노드의 모든 하위 노드를 반환합니다.
STRING
networkMaxDepth
상위 노드의 하위 노드를 검색할 수준입니다. 1은 직접 하위를 반환하고 2는 하위의 하위를 반환합니다. 0 또는 default/null로 설정된 경우 하위의 전체 계층을 반환합니다.
INTEGER
offset
지정된 값에 따른 결과의 오프셋입니다. 예를 들어, 데이터베이스에 오프셋이 5인 200개의 결과가 있는 경우 5개~200개(합계: 195개)의 결과가 반환됩니다.
offsetmaxItems와 조합하여 페이지 매김을 시뮬레이션할 수 있습니다. 더 많은 결과를 위해 추가 질의할수록 질의 시간이 느려질 수 있습니다.
예를 들어, 1 ~ 1,000개의 사물이 있고 maxItems가 5인 경우 각 페이지에 5개의 결과가 표시됩니다.
1페이지: offset이 0입니다. maxItems가 5이므로 처음 5개의 결과가 반환됩니다.
2페이지: offset이 5입니다. 6 ~ 10개의 결과가 반환됩니다.
3페이지: offset이 10입니다. 11 ~ 15개의 결과가 반환됩니다.
이런 식으로 결과가 반환됩니다.
이 예에서는 반환되는 결과의 수가 적으므로 질의 시간이 빠릅니다.
NUMBER
basicPropertyNames
기본 속성의 이름을 나열합니다.
INFOTABLE
withPermissions
권한을 고려해야 하는지 여부를 지정하는 BOOLEAN 매개 변수(true 또는 false)입니다. true인 경우 서비스가 작업을 수행하기 전에 권한을 확인합니다.
BOOLEAN
nameMask
이름 필터링을 위한 패턴이나 마스크를 지정합니다.
STRING
propertyNames
검색하거나 조작하려는 속성의 이름을 나열합니다.
INFOTABLE
query
결과 필터링을 위한 질의 매개 변수를 정의합니다.
QUERY
networkName
네트워크의 이름을 지정합니다.
STRING
maxItems
페이지 매김의 페이지 크기와 유사하게 필요한 최대 항목 수를 나타냅니다. 이는 단일 결과 페이지에 반환되는 항목 수를 제어하는 데 유용합니다.
NUMBER
tags
필터링할 데이터 태그입니다.
TAGS
출력
인포테이블입니다.
// result: INFOTABLE dataShape: "RootEntityList"
let result = ThingTemplates["GenericThing"].QueryImplementingThingsOptimized({
networkParentNode: undefined /* STRING */,
networkMaxDepth: undefined /* INTEGER {"defaultValue":0} */,
maxItems: undefined /* NUMBER {"defaultValue":500} */,
basicPropertyNames: undefined /* INFOTABLE {"dataShape":"EntityList"} */,
withPermissions: undefined /* BOOLEAN {"defaultValue":false} */,
offset: undefined /* NUMBER {"defaultValue":0} */,
nameMask: undefined /* STRING */,
propertyNames: undefined /* INFOTABLE {"dataShape":"EntityList"} */,
query: undefined /* QUERY */,
networkName: undefined /* STRING */,
tags: undefined /* TAGS */
});
도움이 되셨나요?