QueryImplementingThingsOptimized
Description
Le service QueryImplementingThingsOptimized permet d'interroger efficacement les formes et les modèles d'objet. Il propose deux services JavaScript :
QueryImplementingThingsOptimized
QueryImplementingThingsOptimizedWithTotalCount
Vous pouvez les appeler de la même manière que pour le service QueryImplementingThings. Par exemple, ThingShapes["shape1"].QueryImplementingThingsOptimized.
WithTotalCount renvoie une table d'informations contenant le résultat et le nombre total de lignes, en ignorant une limite d'éléments ou un décalage maximum appliqué à la requête. Par exemple, si vous effectuez une requête avec maxItems défini sur 5, cinq lignes sont renvoyées. Toutefois, le nombre total de lignes peut être égal à 100, qui correspond au nombre total de lignes trouvées avant l'application de la limite.
Le service QueryImplementingThingsOptimized recherche dans le cache au lieu de la base de données, et les restrictions suivantes s'appliquent :
Seules les propriétés de la forme ou du modèle d'objet spécifié peuvent être entrées. Les propriétés peuvent être spécifiées à l'aide du paramètre propertyNames. Si une propriété est présente sur l'objet, mais pas sur la forme d'objet spécifiée, le service lèvera une exception.
Le filtrage ou le tri sur le type de mot de passe n'est pas autorisé.
Les objets disposant d'une propriété ne pouvant pas être filtrée en raison des autorisations sont ignorés. Si une propriété non filtrée et non visible est demandée, elle est renvoyée en tant que valeur nulle pour cet objet.
Par exemple, vous filtrez sur la propriété prop1 d'une forme d'objet donnée, où se trouvent Thing1, Thing2 et Thing3. Pour Thing1, vous ne pouvez pas voir prop1 ; par conséquent, Thing1 sera ignoré même si sa valeur correspond au filtre. Seuls Thing2 et Thing3 seront renvoyés.
Le filtrage ou le tri n'est pas autorisé sur les propriétés de base suivantes : homeMashup, Avatar, projectName et isSystemObject.
Entrée
Nom de paramètre
Description
Type de base
networkName
Nom du réseau sur lequel filtrer. La requête renverra uniquement les résultats obtenus à partir des objets présents sur ce réseau.
STRING
networkParentNode
Nom du noeud supérieur dans le réseau spécifié dans networkName. La requête renverra tous les enfants du noeud parent spécifié dans le réseau.
STRING
networkMaxDepth
Niveau auquel rechercher les enfants du noeud parent. 1 renvoie les enfants directs et 2 renvoie les enfants des enfants. S'il est défini sur 0 ou sur défaut/nul, il renvoie la hiérarchie complète des enfants.
INTEGER
offset
Décalage du résultat par rapport à la valeur spécifiée. Par exemple, s'il existe 200 résultats dans la base de données, avec un décalage de 5, les résultats 5 à 200 (pour un total de 195) sont renvoyés.
Vous pouvez combiner les paramètres offset et maxItems pour simuler la pagination. Plus la requête porte sur un nombre important de résultats, plus le temps d'interrogation peut être long.
Par exemple, si vous disposez de 1 000 objets et que maxItems est défini sur 5, chaque page affichera 5 résultats.
Page 1 : offset est défini sur 0. Les 5 premiers résultats sont renvoyés puisque maxItems est égal à 5.
Page 2 : offset est défini sur 5. Les résultats 6 à 10 sont renvoyés.
Page 3 : offset est défini sur 10. Les résultats 11 à 15 sont renvoyés.
Et ainsi de suite.
Dans cet exemple, le nombre de résultats renvoyés est faible, de sorte que le temps d'interrogation est court.
NUMBER
basicPropertyNames
Répertorie les noms des propriétés de base.
INFOTABLE
withPermissions
Paramètre de type booléen (vrai ou faux) qui spécifie si les permissions doivent être prises en compte. Lorsque sa valeur est définie sur "true", le service vérifie les permissions avant d'effectuer des actions.
BOOLEAN
nameMask
Spécifie un modèle ou un masque pour filtrer les noms.
STRING
propertyNames
Répertorie les noms des propriétés que vous souhaitez récupérer ou manipuler.
INFOTABLE
query
Définit les paramètres de requête à utiliser pour filtrer les résultats.
QUERY
networkName
Spécifie le nom du réseau.
STRING
maxItems
Indique le nombre maximal d'éléments requis ; similaire à la taille de page dans la pagination. Ce paramètre est utile pour contrôler le nombre d'éléments renvoyés sur une page unique de résultats.
NUMBER
tags
Tags de données à filtrer.
TAGS
Sortie
Table d'informations.
Exemple
// 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 */
});
Est-ce que cela a été utile ?