リスト制御パラメータ
一覧形式のデータを返却するリソースでは、次のパラメータをURL末尾にクエリ文字列として付加することで、出力される一覧データを制御することができます。
パラメータ名 | 型 | 説明 |
---|---|---|
page | 数値 | ページNo (未指定の場合は、1) |
limit | 数値 | 1ページあたりの出力件数 (未指定の場合は、10) |
order | 文字列 | ソート基準フィールド名 |
asc | 真理値 | ソート順(true:昇順、それ以外:降順) |
filter | 文字列 | フィルタリングクエリ:条件にマッチするデータのみを絞り込み抽出することができます。 |
q | 文字列 | 全文検索クエリ:キーワードによる検索を行うことができます。検索結果は、キーワードとの関連度が高い順に出力されます。 |
page=ページNo&limit=1ページあたりの出力件数&order=ソート基準フィールド名&asc=true/false&filter=フィルタリングクエリ&q=全文検索クエリ
フィルタリングクエリ
フィルタリングクエリには、リストデータの抽出条件を指定します。
クエリオブジェクト
フィルタリングクエリに指定する抽出条件は、キーにオペレータ・値にオペランドで構成されるクエリオブジェクトによって表現します。
このクエリオブジェクトを組み合わせて、複雑な抽出条件を表現することも可能です。
使用可能なオペレータは、次の通りです。
演算 | オペレータ | JSON表現 |
---|---|---|
等価(フィールド = 値) | なし |
{"フィールド名":値} |
不等価(フィールド ≠ 値) | $ne |
{"フィールド名":{"$ne":値}} |
以上(フィールド ≧ 数値) | $gte |
{"フィールド名":{"$gte":数値}} |
以下(フィールド ≦ 数値) | $lte |
{"フィールド名":{"$lte":数値}} |
超過(フィールド > 数値) | $gt |
{"フィールド名":{"$gt":数値}} |
未満(フィールド < 数値) | $lt |
{"フィールド名":{"$lt":数値}} |
すべての条件を満たす(Qo1 かつ Qo2 かつ ...) | なし |
[{Qo1}, {Qo2}, ... ] |
いずれかの条件を満たす(Qo1 または Qo2 または ...) | $or |
{"$or":[{Qo1}, {Qo2}, ... ]} |
条件を満たさない (Qoが偽) | $not |
{"$not":{Qo}} |
*Qo: クエリオブジェクト
フィルタリングクエリの指定方法
抽出条件であるクエリオブジェクトをパラメータとして指定するには、クエリオブジェクトをJSON形式に変換し、さらにURLエンコードした上で指定します。
例
まず、クエリオブジェクトをJSON形式に変換します。
{"$or":[
{"title":"Apple"},
{"title":"Grape"}
]}
これにURLエンコードを施した文字列を、パラメータとして指定します。
filter=%7b%22%24or%22%3a%5b%7b%22title%22%3a%22Apple%22%7d%2c%7b%22title%22%3a%22Grape%22%7d%5d%7d
全文検索クエリ
全文検索クエリには、検索したいキーワードを指定します。
複数のキーワードを組み合わせた条件検索を行うこともできます。
OR検索
OR検索は、複数のキーワードのうち、いずれか1つが含まれるデータを検索することができます。
OR検索を行うには、キーワードを「OR」で区切ります。
Apple OR Orange
AND検索
AND検索は、すべてのキーワードが含まれるデータを検索することができます。
AND検索を行うには、キーワードを「 (スペース)」もしくは「AND」で区切ります。
Apple Orange
または
Apple AND Orange
NOT検索
NOT検索は、特定のキーワードが含まれないデータを検索することができます。
NOT検索を行うには、キーワードの接頭に「NOT」を付加します。
NOT Apple
グルーピング
AND/OR/NOT検索を組み合わせて複雑な検索条件を構成するには、複数の検索条件をグルーピングして結合します。
半角丸括弧で検索条件を囲むことでグループ化できます。
( Apple AND Orange ) OR ( Banana AND Lime )
フィールド指定検索
フィールド指定検索では、特定のフィールドに含まれるキーワードを指定した検索が行えます。
フィールド指定検索を行うには、「フィールド名:キーワード」のように、フィールド名とキーワードをコロンで区切って指定します。
title:Apple OR keywords:Apple