Class: Query

Query

new Query()

Queryクラス

DataModel.createQueryの戻り値がこのクラスのインスタンスです。

Source:

Methods

(static) addOrder(key, isAscopt) → {Query}

検索結果のソート条件を指定したプロパティついての昇順、または降順に設定

検索結果のソート条件を指定したプロパティについての昇順、または降順に設定します。第1引数には比較対象となるキー名を指定してください。

第2引数にfalseを指定した場合は降順です。trueを指定した場合は省略した場合は昇順です。

addOrderは複数回呼ぶことで条件を追加できます。


query.addOrder('p1').addOrder('p2', false);

上記のように指定した場合、p1キーで昇順ソートし、p1の値が同じアイテムについてはp2キーで降順ソートします。

Query.setOrderFunctionで比較関数を設定している場合はこのメソッドは呼べません。また逆に、addOrder()で条件を追加している場合にsetOrderFunctionで比較関数を設定することもできません。

addOrder()で追加した条件をすべて削除したい場合はQuery.clearOrderを実行してください。

Parameters:
Name Type Attributes Default Description
key string
isAsc boolean <optional>
true falseを指定すると降順に設定。デフォルトは昇順
Returns:
Type
Query
Source:

(static) clearOrder() → {Query}

検索結果のソート条件指定を全て削除

Query.addOrder及びQuery.setOrderFunctionで設定したソート条件をすべて削除します。

Returns:
Type
Query
Source:

(static) execute() → {QueryResult}

検索を実行

Query.setCriteriaで設定した検索条件で検索し、結果をQueryResultで返します。

また、Query.onQueryCompleteに設定したハンドラが呼ばれます。

Returns:
Type
QueryResult
Source:

(static) onQueryComplete(completeHandler) → {Query}

execute()による検索が完了した時に実行するハンドラを登録

ハンドラの引数には検索結果(ObserevableArray)が渡されます

Parameters:
Name Type Description
completeHandler function
Returns:
Type
Query
Source:

(static) setCriteria(criteria) → {Query}

検索条件オブジェクトをセットします

検索の実行(Query.execute)を実行した時に、ここで指定した検索条件オブジェクトに基づいて検索を実行します。

検索条件オブジェクトは、"プロパティ名 (演算子)"をキーにして、比較する値を値に持つオブジェクトを指定します。 複数のプロパティを持つオブジェクトはデフォルトではANDで評価します。

演算子には、===,!==,==,!=,>=,<=,between,!between,in,!inを指定できます。省略した場合は===です。

検索条件オブジェクトに"__op"プロパティを持たせて、値に'or'を記述すると、ORでの評価になります。 ('and'を設定すると記述しない場合と同様ANDでの評価になります。

詳細はリファレンス>Criteriaオブジェクトをご覧ください

// 記述例
// categoryが'book'で、nameに'HTML5'を含み、priceが3000未満のアイテムを検索する条件
{
	category: 'book',
	name: /HTML5/,
	'price <': 3000
}
// categoryが'game'または'movie'で、releaseDateが2014年以降のアイテムを検索する条件
{
  'category in': ['game', 'movie'],
  'relaseDate >=': new Date('2014/1/1')
}
Parameters:
Name Type Description
criteria Object 検索条件オブジェクト
Returns:
Type
Query
Source:

(static) setOrderFunction(orderFunction) → {Query}

検索結果のソート条件を比較関数で設定

検索結果をソートする比較関数を指定します。データアイテム同士を比較する関数を設定してください。

比較関数の例


query.setOrderFunction(function(a, b) {
	// 比較関数の引数はそれぞれデータアイテム。第1引数を先にする場合は正の値、第2引数を先にする場合は負の値を返す
		return parseInt(b.get('id')) - parseInt(a.get('id'));
	});

単にあるプロパティで昇順あるいは降順にソートしたい場合はQuery.addOrderで設定できます。

Query.addOrderで条件を追加している場合にsetOrderFunctionで比較関数を設定することはできません。また逆に、setOrderFunctionで比較関数を設定している場合はaddOrderは呼べません。

setOrderFunction()で比較設定を設定済みである場合に再度setOrderFunction()を実行すると、設定済みの関数は上書きされます。

setOrderFunction()で設定したソート条件を削除したい場合はQuery.clearOrderを実行してください。

Parameters:
Name Type Description
orderFunction function
Returns:
Type
Query
Source: