GraphQLフィルタ指定: 引数
Oracle AI DatabaseでGraphQLを使用してフィルタリングするには、引数を使用します。
GraphQLの引数は、SQL問合せのwhere句に似ています。引数を定義する構文には、1つ以上のカンマ区切りの述語が含まれており、この述語はフィールド名と、出力でフィルタリングする必要がある対応する値を受け取ります。
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver (teamId: 301) {
id: driver_id
name
points
teamId: team_id
}
');
前述の例では、teamID: 301がフィルタリング引数です。この例では、
teamIDフィールドが301に等しいdriverの詳細を生成します:DATA
--------------------------------------------------------------------------------
{
"id" : 101,
"name" : "Lando Norris",
"points" : 282,
"teamId" : 301
}
{
"id" : 102,
"name" : "Oscar Piastri",
"points" : 384,
"teamId" : 301
}
2 rows selected.
特定のフィールド引数を使用しても、出力にそのフィールドが表示されるとはかぎりません。このため、次の例では、フィルタ引数として使用される
team_idが出力で指定されていないというエラーは生成されません:SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver (team_id: 301) {
id: driver_id
name
points
}
');出力には、
team_idが301と等しいdriverオブジェクトのid、nameおよびpointsのみが表示されます。DATA
--------------------------------------------------------------------------------
{
"id" : 101,
"name" : "Lando Norris",
"points" : 282
}
{
"id" : 102,
"name" : "Oscar Piastri",
"points" : 384
}
2 rows selected.LIMIT引数
Oracle AI DatabaseのGraphQL limit引数は、出力を指定された数のJSONオブジェクトに制限します。構文は単純で、キーワードlimitの後に:および制限を定義するintegerを指定します。
次の例の
limit:5では、表内のオブジェクト数に関係なく、5つのオブジェクトのみが取得されます:SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
driver (limit: 5) {
id: driver_id
name
points
}
');