クエリオブジェクト

iOS・Android・Cordovaでは各種条件はメソッドの引数で指定しますが、JavaScript・Flutter・Node.jsではクエリオブジェクトに対してメソッドチェーンで各条件を指定します。

例えば、以下のJavaScriptのコードを例にすると、RKZ.Data.query()DataQueryというオブジェクトを返します。

const dataResult = await RKZ.Data.query('shop')
    .equalTo('category_cd', '0001') // 一致検索条件
    .contains('name', 'パン') // 中間一致検索条件
    .asc('name') // 昇順ソート条件
    .find()

DataQueryにはequalTo()などの検索条件を指定するメソッド、asc()などのソート条件を指定するメソッドなどが用意されており、これらのメソッドはクエリオブジェクトを返すため、メソッドチェーンで他の条件を指定することができます。

最後にfind()を呼び出すと実際にデータの問い合わせを行い、結果を返します。

ヒント

Flutterでは各メソッドはクエリオブジェクトを返しません。そのかわりに、Dartの「カスケード演算子」を使って、メソッドチェーンを記述します。

final query = RKZClient.instance.dataQuery(objectId)
  ..equalTo('category_cd', '0001')
  ..asc('name');
final dataResult = await query.find();