KiiObject の取得と検索

Kii Cloud に登録したデータは、次の 2 通りの方法で取得できます。

  • ID/URI 指定での取得

    ID または URI を指定して、特定の KiiObject 1 件を取得できます。

    KiiObject を登録した際に発行される ID や URI を記憶しておき、それらを使って特定の KiiObject を取得します。ID は作成時にモバイルアプリから指定することもできます。

  • 条件指定による検索

    特定の Bucket に対して検索クエリーを実行することで、条件に一致する KiiObject をまとめて取得できます。

    また、結果の KiiObject を取得せず、条件に一致する KiiObject の件数だけをカウントすることもできます。

KiiObject の検索

Kii Cloud に KiiObject を登録した際、JSON ドキュメントの第 1 階層にあるデータは、自動的にインデックスが作成されて検索対象となります。第 2 階層以降にあるデータは JSON ドキュメントとしては登録できますが、検索対象にはなりません。

インデックスは KiiObject を登録するだけで自動的に作成されます。インデックスの作成に対しても、型情報の事前定義などは必要ありません。

リリース後に新しく検索機能が必要になった場合や、データ形式の変更があった場合でも、データの再登録なしにインデックスを使った検索を実行できます。

検索時は、以下のような条件を AND/OR/NOT によって組み合わせてクエリーを作成できます。

  • フィールド値と指定された値との比較結果(=、<、≦、≧、>)が一致するものを取得
  • フィールドの文字列が、指定された文字列から始まっているものを取得
  • フィールド値が、指定された複数の値のいずれかに一致しているものを取得
  • フィールド値が、指定の型であるものを取得
  • フィールド値の緯度経度が、指定された長方形エリア、または円エリアに含まれるものを取得

フィールドには、KiiObject の JSON ドキュメントで指定した値の他、KiiObject の作成日時や更新日時、オーナーユーザーの ID なども指定できます。

また、取得時には、ソートに指定するフィールド(昇順または降順)や、1 回で取得する KiiObject の件数の最大値も指定できます。

本ドキュメントでは、検索クエリーの指定方法と共に、パフォーマンスを最適化するためのヒント(AndroidiOSJavaScriptREST) も記載しています。

ページネーション

検索を実行した結果、検索条件に一致する KiiObject が多数存在する場合は、結果をページごとに分割して取得するページネーションの機能を利用できます。

クライアントからは、次の図のように、ページ単位ですべての検索結果を取得できます。モバイルアプリではページ切り替えや無限スクロールなどの機能表現により、取得結果を表示することで、画面表示までの待ち時間を最小化できます。


この機能の詳細は...

  • 検索対象となる JSON ドキュメントの仕様については、リファレンスガイドの「JSON ドキュメントのアクセス」(AndroidiOSJavaScriptREST)を参照してください。
  • 検索機能の詳細は、リファレンスガイドの「KiiObject の検索」(AndroidiOSJavaScriptREST)を参照してください。