OpenSearch/x-pack/docs/en/watcher/condition/array-compare.asciidoc

70 lines
2.9 KiB
Plaintext
Raw Normal View History

[[condition-array-compare]]
=== Array Compare Condition
Use `array_compare` to compare an array of values in the execution context to a
given value. See <<condition-compare-operators, Supported Comparison Operators>>
for the operators you can use.
==== Using an Array Compare Condition
To use the `array_compare` condition, you specify the array in the execution
context that you want to evaluate, a <<condition-compare-operators,comparison
operator>>, and the value you want to compare against. Optionally, you
can specify the path to the field in each array element that you want to
evaluate.
For example, the following `array_compare` condition returns `true` if there
is at least one bucket in the aggregation that has a `doc_count` greater
than or equal to 25:
[source,js]
--------------------------------------------------
{
"condition": {
"array_compare": {
"ctx.payload.aggregations.top_tweeters.buckets" : { <1>
"path": "doc_count", <2>
"gte": { <3>
"value": 25, <4>
}
}
}
}
}
--------------------------------------------------
// NOTCONSOLE
<1> The path to the array in the execution
context that you want to evaluate, specified in dot notation.
<2> The path to the field in each array element that you want to evaluate.
<3> The <<condition-compare-operators, comparison operator>> to use.
<4> The comparison value. Supports date math like the
<<compare-condition-date-math, compare condition>>.
NOTE: When using fieldnames that contain a dot this condition will not
work, use a <<condition-script,script condition>> instead.
==== Array-Compare Condition Attributes
[options="header"]
|======
| Name | Description
|`<array path>` | The path to the array in the execution
context, specified in dot notation.
For example, `ctx.payload.aggregations.top_tweeters.buckets`.
| `<array path>.path` | The path to the field in each array element
that you want to evaluate. For example,
`doc_count`. Defaults to an empty string.
| `<array path>.<operator>.quantifier` | How many matches are required for the
comparison to evaluate to `true`: `some`
or `all`. Defaults to `some`--there must
be at least one match. If the array is
empty, the comparison evaluates to `true`
if the quantifier is set to `all` and
`false` if the quantifier is set to
`some`.
| `<array path>.<operator>.value` | The value to compare against.
|======