[[condition-array-compare]] ==== Array Compare Condition A watch <> that compares an array of values in the <> to a given value. The values in the model are identified by a path within that model. ==== Using an Array Compare Condition The following snippet configures an `array_compare` condition that returns `true` if there is at least one bucket in the aggregations buckets that has a `doc_count` higher than or equal to 25: [source,json] -------------------------------------------------- { ... "condition": { "array_compare": { "ctx.payload.aggregations.top_tweeters.buckets" : { <1> "path": "doc_count" <2>, "gte": { <3> "value": 25, <4> "quantifier": "some" <5> } } } } ... } -------------------------------------------------- <1> The field name is the path to the array (array path) in the execution context model <2> The value of the field `path` (here `doc_count`) is the path to the value for each element of the array that the comparison operator will be applied to <3> The field name (here `gte`) is the name of the comparison operator <4> The value of the field `value` in the comparison operator object is the comparison value <5> The value of the field `quantifier` (`all` or `some`) specifies whether the comparison must be true for all or for at least one of the values to evaluate the comparison to true NOTE: The `path` element is optional and will default to `""` if not specified. NOTE: The `quantifier` element is optional and will default to `"some"` if not specified. The array path is a "dot-notation" expression that can reference the following variables in the watch context: [options="header"] |====== | Name | Description | `ctx.metadata.*` | Any metadata associated with the watch. | `ctx.payload.*` | The payload data loaded by the watch's input. |====== This array path must resolve to an array. The comparison operator can be any one of the operators supported by the <>. The quantifier operator can be any one of the following: [options="header"] |====== | Name | Description | `all` | Returns `true` when the resolved value compares `true` according to the comparison operator for all the elements in the array | `some` | Returns `true` when the resolved value compares `true` according to the comparison operator for at least one element in the array |====== NOTE: If the array is empty, `all` causes the comparison operator to evaluate to `true` and `some` causes the comparison operator to evaluate to `false`. NOTE: It is also possible to use date math expressions and values in the context model as in the <>.