PHP 8.4.2 Released!

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpressionEncrypts a match or aggregate expression

Опис

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

Encrypts a match or aggregate expression to query a range index.

To query with a range encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

Зауваження:

The extension does not yet support range queries for Decimal128 BSON field types.

Параметри

expr

The match or aggregate expression to be encrypted. Expressions must use at least one of the $gt, $gte, $lt, or $lte operators. A top-level $and operator is required, even if only a single comparison operator is used.

An example of a supported match expression (applies to queries and the $match aggregation stage) is as follows:

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

An example of a supported aggregate expression is as follows:

[
    '$and' => [
        [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
        [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
    ],
]
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 Нижня межа діапазону, яка має BSON-значення. Параметр обов'язковий, якщо задано precision.
max mixed Верхня межа діапазону, яка має BSON-значення. Параметр обов'язковий, якщо задано precision.
sparsity int Обов'язковий. Додатнє ціле 64-бітне число.
precision int Необов'язковий. Додатнє ціле 32-бітне число, що вказує точність явного шифрування. Можна задавати тільки для полів з BSON-типами "double" або "decimal128".
trimFactor int Необов'язковий. Додатнє ціле 32-бітне число.

Значення, що повертаються

Returns the encrypted expression as an object.

Помилки/виключення

Журнал змін

Версія Опис
PECL mongodb 1.20.0 Added the "trimFactor" range option. The "sparsity" range option is now optional.

Прогляньте також

add a note

User Contributed Notes

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