[[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.
   
|======
