PHP 8.4.6 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

Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant