QueryImplementingThingsOptimized
Descripción
El servicio QueryImplementingThingsOptimized se utiliza para consultar definiciones de cosa y plantillas de cosa de forma eficaz. Ofrece dos servicios de JavaScript:
QueryImplementingThingsOptimized
QueryImplementingThingsOptimizedWithTotalCount
Se pueden llamar de la misma manera que se llamaría al servicio QueryImplementingThings. Por ejemplo, ThingShapes["shape1"].QueryImplementingThingsOptimized.
WithTotalCount devuelve una infotable que contiene el resultado y el número total de filas, desestimando un límite máximo de elementos o un desvío aplicado a la consulta. Por ejemplo, si se consulta con maxItems definido en 5, se devuelven cinco filas. Sin embargo, el número total de filas puede ser igual a 100, que es el número total de filas encontradas antes de aplicar el límite.
El servicio QueryImplementingThingsOptimized busca en la caché en lugar de en la base de datos y se aplican las siguientes restricciones:
Solo se pueden entrar las propiedades de la definición de cosa o la plantilla de cosa especificadas. Las propiedades se pueden especificar mediante el parámetro propertyNames. Si una propiedad está en la cosa, pero no en la definición de cosa especificada, el servicio producirá una excepción.
No está permitido filtrar ni clasificar con el tipo de contraseña.
Se desestiman las cosas con una propiedad que no se puede filtrar debido a los permisos. Si se solicita una propiedad que no se filtra y no es visible, se devolverá como nula para la cosa.
Por ejemplo, se está filtrando con la propiedad prop1 de una definición de cosa determinada, donde Thing1, Thing2 y Thing3 existen. Para Thing1, no se puede ver prop1; por lo tanto, Thing1 se desestimará incluso si su valor coincide con el filtro. Solo se devolverán Thing2 y Thing3.
No está permitido filtrar ni clasificar con las siguientes propiedades básicas: homeMashup, Avatar, projectName e isSystemObject.
Entrada
Nombre del parámetro
Descripción
Tipo base
networkName
El nombre de red por el que se va a filtrar. La consulta solo devolverá los resultados de las cosas que se encuentran en esa red.
STRING
networkParentNode
El nombre del nodo superior de la red especificado en networkName. La consulta devolverá todos los hijos del nodo padre especificado en la red.
STRING
networkMaxDepth
El nivel en el que se deben buscar los hijos del nodo padre. 1 devuelve hijos directos y 2 devuelve hijos de hijos. Si se define en 0 o por defecto/nulo, se devuelve la jerarquía completa de los hijos.
INTEGER
offset
El desvío del resultado según el valor especificado. Por ejemplo, si hay 200 resultados en la base de datos con un desvío de 5, se devuelven los resultados de 5 a 200 (un total de 195).
Se puede combinar offset con maxItems para simular la paginación. Cuanto más profundice una consulta en un gran número de resultados, el tiempo de consulta puede ser más lento.
Por ejemplo, existen las cosas 1 a 1000 y maxItems es 5, por lo que en cada página se muestra 5 resultados:
Página 1: offset es 0. Se devuelven los 5 primeros resultados porque maxItems es 5.
Página 2: offset es 5. Se devuelven los resultados del 6 al 10.
Página 3: offset es 10. Se devuelven los resultados del 11 al 15.
Y así sucesivamente.
En este ejemplo, el número de resultados devueltos es bajo, por lo que el tiempo de consulta es rápido.
NUMBER
basicPropertyNames
Permite enumerar los nombres de las propiedades básicas.
INFOTABLE
withPermissions
Un parámetro BOOLEAN (true o false) que especifica si se deben tener en cuenta los permisos. Si es true, el servicio comprobará los permisos antes de realizar acciones.
BOOLEAN
nameMask
Permite especificar un patrón o máscara para filtrar nombres.
STRING
propertyNames
Permite enumerar los nombres de las propiedades que desea recuperar o manipular.
INFOTABLE
query
Permite definir los parámetros de la consulta para filtrar los resultados.
QUERY
networkName
Permite especificar el nombre de la red.
STRING
maxItems
Permite indicar el número máximo de elementos necesarios, similar al tamaño de página de la paginación. Esto es útil para controlar el número de elementos devueltos en una sola página de resultados.
NUMBER
tags
Etiquetas de datos que se van a filtrar.
TAGS
Salida
Infotable.
Ejemplo
// 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 */
});
¿Fue esto útil?