

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 索引鍵比對
<a name="attribute-key-matching"></a>

在篩選條件政策中使用 `exists` 運算子，根據特定屬性是否存在，來比對傳入的訊息。
+ `exists` 僅適用於分葉節點 （結構中的最終屬性）。
+ 它不適用於巢狀 JSON 結構中的中繼節點。
+ 使用 `"exists": true` 配對包含指定屬性的傳入訊息。該鍵必須具有非空值和非空值。

  例如，下列政策屬性會使用 `exists` 運算子及為 `true` 的值：

  ```
  "store": [{"exists": true}]
  ```

  它符合具有 `store` 屬性索引鍵的任何訊息屬性，如下所示：

  ```
  "store": {"Type": "String", "Value": "fans"}
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  它也符合以下任一訊息內文：

  ```
  {
      "store": "fans"
      "customer_interests": ["baseball", "basketball"]
  }
  ```

  不過，不符合*不具有* `store` 屬性索引鍵的任何訊息屬性，如下所示：

  ```
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  它也不符合以下訊息內文：

  ```
  {
      "customer_interests": ["baseball", "basketball"]
  }
  ```
+ 使用 `"exists": false` 配對*不*包含指定屬性的傳入訊息。
**注意**  
`"exists": false` 只有在至少有一個屬性存在時才相符。一組空白的屬性會導致篩選條件不相符。

  例如，下列政策屬性會使用 `exists` 運算子及為 `false` 的值：

  ```
  "store": [{"exists": false}]
  ```

  它*不*符合具有 `store` 屬性索引鍵的任何訊息，如下所示：

  ```
  "store": {"Type": "String", "Value": "fans"}
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  它也不符合以下訊息內文：

  ```
  {
      "store": "fans"
      "customer_interests": ["baseball", "basketball"]
  }
  ```

  不過，它符合*不具有* `store` 屬性索引鍵的任何訊息屬性，如下所示：

  ```
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  它也符合以下訊息內文：

  ```
  {
      "customer_interests": ["baseball", "basketball"]
  }
  ```