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_id301等しいdriverオブジェクトのidnameおよび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
    }
');