ソリューション開発の最良事例 > HA アプリケーションの最良事例 > QueryImplementingThingsOptimized サービスの使用
QueryImplementingThingsOptimized サービスの使用
QueryImplementingThingsOptimized サービスを Thing Shape および Thing Template に対して呼び出すには、以下の JavaScript サービスを使用できます。
QueryImplementingThingsOptimized
QueryImplementingThingsOptimizedWithTotalCount
これらは QueryImplementingThings サービスを呼び出すときと同じ方法で呼び出すことができます。詳細については、QueryImplementingThings サービスの使用を参照してください。例: ThingShapes["shape1"].QueryImplementingThingsOptimized
WithTotalCount は、クエリーに適用されているアイテムの上限やオフセットは無視したうえで、行の総数と結果が格納されているインフォテーブルを返します。たとえば、maxItems5 に設定してクエリーした場合、5 つの行が返されますが、上限を適用する前に検出された行の総数は 100 になることもあります。
パラメータ
以下のパラメータが QueryImplementingThingsOptimized に適用されます。
QueryImplementingThings のパラメータ:
EntityReference parentEntity
int nMaxItems
TagCollection tagsToCompare
String nameMask
Query query
boolean withData
boolean withPermissions
Collection<文字列> basicPropertyNames
Collection<文字列> propertyNames
QueryImplementingThingsOptimized の追加のパラメータ:
networkName
フィルタを適用するネットワークの名前。クエリーはそのネットワーク内の Thing で見つかった結果のみを返します。
networkParentNode
networkName で指定したネットワーク内の最上位ノードの名前。クエリーはそのネットワーク内の指定された親ノードのすべての子を返します。
networkMaxDepth
親ノードの子を検索するレベル。1 は直接の子を返し、2 は子の子を返します。0 または default/null に設定されている場合、子の完全な階層を返します。
offset
指定した値による結果のオフセット。たとえば、データベース内に 200 個の結果があり、オフセットが 5 に設定されている場合、5 から 200 までの結果 (合計 195) が返されます。
offsetmaxItems と組み合わせることでページ付けをシミュレーションできます。クエリーで返される結果の数が多くなるほど、クエリー時間が長くなることがあります。
たとえば、Thing 1 から 1000 が存在し、maxItems が 5 の場合、各ページには結果が 5 つ表示されます。
ページ 1: offset は 0。maxItems は 5 なので、最初の 5 つの結果が返されます。
ページ 2: offset は 5。結果 6 から 10 が返されます。
ページ 3: offset は 10。結果 11 から 15 が返されます。
以下同様。
この例では、返される結果の数が少ないので、クエリー時間は短くなります。
制限
QueryImplementingThingsOptimized サービスは、データベースではなくキャッシュをサーチし、以下の制限が適用されます。
指定された Thing Shape または Thing Template 上のプロパティだけを入力として指定できます。プロパティは propertyNames パラメータを使用して指定できます。プロパティが Thing には存在するが、指定された Thing Shape には存在しない場合、このサービスは例外を返します。
パスワードタイプによるフィルタや並べ替えはできません。
アクセス許可が理由でフィルタできないプロパティを持つ Thing は無視されます。フィルタされておらず、表示されないプロパティがリクエストされた場合、その Thing では Null として返されます。
たとえば、Thing1Thing2Thing3 が存在し、特定の Thing Shape のプロパティ prop1 に基づいてフィルタを適用しているとします。Thing1 では prop1 が表示されないので、その値がフィルタと一致する場合でも Thing1 は無視されます。Thing2Thing3 だけが返されます。
基本プロパティ homeMashupAvatarprojectName、および isSystemObject に基づいたフィルタや並べ替えは許可されていません:
これは役に立ちましたか?