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' => [ [ '' => [ '$gt' => '' ] ] [ '' => [ '$lte' => '' ] ] ],]
Приклад агрегованого виразу, що підтримується, виглядає наступним чином:
[ '$and' => [ [ '$gte' => [ '', '' ] ] [ '$lt' => [ '', '' ] ] ],]
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. |
Значення, що повертаються
Повертає зашифрований вираз у вигляді об'єкта.
Помилки
- При помилці парсингу аргумент кидає винятокMongoDB\Driver\Exception\InvalidArgumentException
- Викидає виняток MongoDB\Driver\Exception\EncryptionExceptionу разі виникнення помилки під час шифрування виразу.
Дивіться також
- MongoDB\Driver\Manager::__construct() - Створює новий Manager MongoDB