Шифрует совпадение или агрегированное выражение

# MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpression — Шифрует совпадение или агрегированное выражение

### Описание

final public function MongoDB\Driver\ClientEncryption::encryptExpression(array|object `$expr`, ?array `$options` = `null`): object

Метод шифрует совпадение или агрегированное выражение для запроса индекса диапазона.

Для выполнения запроса с зашифрованным диапазоном полезной нагрузки драйвер MongoDB\Driver\Manager конфигурируют с опцией `"autoEncryption"`. Опция `"bypassQueryAnalysis"` автоматического шифрования принимает значение `true`. Для опции автоматического шифрования `"bypassAutoEncryption"` устанавливают значение `false`.

> Замечание: Модуль пока не поддерживает запросы диапазонов для BSON-полей с типом Decimal128.

### Список параметров

`expr`
  Соответствие или агрегированное выражение, которое требуется зашифровать. В выражениях указывают хотя бы один оператор из списка: `$gt`, `$gte`, `$lt` или `$lte`. Оператор верхнего уровня `$and` необходим, даже если используется только один оператор сравнения. Пример поддерживаемого выражения соответствия (применяется для запросов и этапа агрегации `$match`) выглядит следующим образом:

      [
          '$and' => [
              [ '<field>' => [ '$gt'  => '<value1>' ] ],
              [ '<field>' => [ '$lte' => '<value2>' ] ],
          ],
      ]

  Пример поддерживаемого агрегированного выражения выглядит следующим образом:

      [
          '$and' => [
              [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
              [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
          ],
      ]

`options`

  Encryption options
  Опция | Тип | Описание
  --- | --- | ---
  algorithm | string | Алгоритм шифрования, который будет использоваться. Опция обязательна. Укажите одну из следующих констант ClientEncryption: `MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC` `MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM` `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED` `MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED` `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`
  contentionFactor | int | Коэффициент конкуренции для оценки запросов с индексированными зашифрованными полезными нагрузками. Опция применяется и может быть указана только тогда, когда опция `algorithm` равна `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED` или `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`.
  keyAltName | string | Идентифицирует документ коллекции хранилища ключей по `keyAltName`. Опция является взаимоисключающей с `keyId` и требуется ровно один.
  keyId | MongoDB\BSON\Binary | Идентифицирует ключ данных по `_id`. Значением является UUID (двоичный подтип 4). Опция является взаимоисключающей с `keyAltName` и требуется ровно один.
  queryType | string | Тип запроса для оценки запросов с индексированными, зашифрованными полезными нагрузками. Укажите одну из следующих констант ClientEncryption: `MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY` `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE` Опция применяется и может быть указана только тогда, когда опция `algorithm` равна `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED` или `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`.
  rangeOpts | array | Опции индекса для шифруемого поля с поддержкой запросов «range». Параметры, которые приводят следующие абзацы, должны соответствовать значениям, которые установили в параметре `encryptedFields` целевой коллекции. Для BSON-полей с типом double и decimal128 требуется либо установить все опции `min`, `max` и `precision`, либо все отключить.
  Опции индекса диапазона
  Опция | Тип | Описание
  --- | --- | ---
  min | mixed | Обязательна, если опцию `precision` установили. Минимальное BSON-значение в диапазоне.
  max | mixed | Обязательна, если опцию `precision` установили. Максимальное BSON-значение в диапазоне.
  sparsity | int | Необязательна. Опция принимает положительное 64-битное целое число.
  precision | int | Небязательна. Опция принимает положительное 32-битное целое число, которое указывает точность для явного шифрования. Опцию устанавливают только для BSON-полей с типом double или decimal128.
  trimFactor | int | Необязательна. Положительное 32-битное целое число.

### Возвращаемые значения

Метод возвращает зашифрованное выражение в виде объекта.

### Ошибки

- При ошибке парсинга аргумента метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- Метод выбрасывает исключение MongoDB\Driver\Exception\EncryptionException, если возникла ошибка при шифровании выражения.

### Список изменений

Версия | Описание
--- | ---
PECL-модуль mongodb 1.20.0 | В список опций параметра шифрования rangeOpts добавили опцию индекса диапазона `"trimFactor"`. Опция диапазона `"sparsity"` теперь необязательна.

### Смотрите также

- MongoDB\Driver\Manager::__construct() - Создаёт нового MongoDB-менеджера
- MongoDB\Driver\ClientEncryption::encrypt() - Шифрует данные

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open