PHP 8.4.1 Released!

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

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

Описание

final public 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:

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:

Опция применяется и может быть указана только тогда, когда опция 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-битное целое число.

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

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

Ошибки

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

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

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top