Where 節¶
map 機能、reduce 機能の where
節は同じ仕様で、他のクエリシステム同様に入力値をフィルタします。
map および reduce の where
定義は同じ結果を生成するわけではなく、すべてのパラメータが有効であるわけでもありません。
Where 節の例¶
{
"version": "1.7.0",
"event": {
"game": {
"maps": [
{
"id": "changeColor",
"source": "userinput",
"where": {"key": ["changeColor", "<name>"], "name": "<color>", "type": "string"},
"key": ["changeColor", "<name>", "<color>"], "value": 1
},
{
"id": "cheer",
"source": "userinput",
"where": {"key": ["cheer"], "name": "<name>", "type": "string"},
"key": ["cheer", "<name>"], "value": 1
}
],
"reductions": [
{
"id": "changeColor",
"where": {"key": ["changeColor", "<name>", "<color>"]},
"key": ["<name>", "<color>"],
"value": ["$count"],
"period": 250
},
{
"id": "cheer",
"where": {"key": ["cheer", "<name>"]},
"key": ["<name>"],
"value": ["$sum"],
"period": 250
}
]
}
}
}
Where 節のコンテンツ¶
一致する key:value
ペアの条件を指定します。条件には次のようなものがあります。
キー¶
文字列の配列。カッコ内に記述する必要があります。コンマ区切りで複数の値を含むこともできます。値が文字列の場合、イベントはこの値と一致する必要があります。値が <> 付きの文字列の場合、任意の値をとります。この値は、あとで <> の間のタグで参照することができます。
{"key": ["changeColor", "<name>", "<color>"]}
名前¶
値のタグ名。
タイプ¶
送信する値のタイプ。この値は、 ブール値 、 文字列 、 数字 (数字の場合、 float64 が map および reduce に使用します)。以下のようなフィルタ処理に使用すると便利です。
フィルタ処理¶
タイプに応じて、以下のオプションで値をフィルタすることもできます:
any type:
$or
: 値に、 where 節の配列の少なくとも 1 つの where 節が含まれる必要があります。
bool:
$eq
: 値が指定した値と同一である必要があります。
number:
$eq
: 値が指定した値と同一である必要があります。$neq
: 値が指定した値と同一でない。$gt
: 値が指定した値より大きい。$gte
: 値が指定した値以上。$lt
: 値が指定した値より小さい。$lte
: 値が指定した値以下。
string:
$caseSensitive
: 検索で大文字小文字を区別するように変更します。以下のフィルタ処理と組み合わせて使用することができます。$in
: 値が、配列の 1 つの項目と一致する必要があります。$searchIn
: 値に、リストの文字列が少なくとも 1 つ含まれる必要があります。$search
: 値に検索文字列が含まれる必要があります。$eq
: 値が指定した値と同一である必要があります。$neq
: 値が指定した値と同一でない。