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.

Замечание:

Алгоритм работы с диапазоном является экспериментальным. Он не предназначен для публичного использования.

Драйвер PHP пока не поддерживает запросы диапазонов для типов полей decimal128 BSON.

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

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_PREVIEW
contentionFactor int

Коэффициент сдерживания при оценке запросов с индексированными, зашифрованными полезными нагрузками.

Опция применяется и может быть указана только тогда, когда опция algorithm равна MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED или MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

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_PREVIEW

Опция применяется и может быть указана только тогда, когда опция algorithm равна MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED или MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Опции индекса для шифруемого поля с поддержкой запросов "rangePreview". Приведённые ниже параметры должны соответствовать значениям, установленным в encryptedFields целевой коллекции. Для полей типа double и decimal128 BSON, min, max и precision должны быть либо все установлены, либо все должны отсутствовать.

Опции индекса диапазона
Опция Тип Описание
min mixed Обязательное, если установлено значение precision.
max mixed Обязательное, если установлено значение precision.
sparsity int Обязательное.
precision int Необязательное. Может быть установлено только для типов полей BSON double или decimal128.

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

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

Ошибки

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

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top