# MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpression — Chiffre une expression de correspondance ou d'agrégation

### Description

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

Chiffre une expression de correspondance ou d'agrégation pour interroger un index de plage.

Pour interroger avec une charge utile chiffrée par plage, l'option de pilote MongoDB\Driver\Manager doit être configurée avec l'option de pilote `"autoEncryption"`. L'option de chiffrement automatique `"bypassQueryAnalysis"` peut être `true`. L'option de chiffrement automatique `"bypassAutoEncryption"` doit être `false`.

> Note:

> L'extension ne prend pas encore en charge les requêtes de plage pour les types de champ BSON Decimal128.

### Liste de paramètres

`expr`

  L'expression de correspondance ou d'agrégation à chiffrer. Les expressions doivent utiliser au moins un des opérateurs `$gt`, `$gte`, `$lt` ou `$lte`. Un opérateur de comparaison unique est utilisé.

  Un exemple d'expression de correspondance prise en charge (s'applique aux requêtes et à l'étape d'agrégation `$match`) est le suivant :

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

  Un exemple d'expression d'agrégation prise en charge est le suivant :

      [
          '$and' => [
              [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
              [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
          ],
      ]

`options`

  Options de chiffrement
  Option | Type | Description
  --- | --- | ---
  algorithm | string | L'algorithme de chiffrement à utiliser. Cette option est requise. Spécifiez l'une des constantes suivantes de 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`
  contentionFactor | int | Le facteur de contention pour évaluer les requêtes avec des charges utiles chiffrées indexées. Cette option s'applique uniquement et ne peut être spécifiée que lorsque `algorithm` est `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED` ou `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`.
  keyAltName | string | Identifie un document de collection de coffre à clés par `keyAltName`. Cette option est mutuellement exclusive avec `keyId` et l'une des deux est requise.
  keyId | MongoDB\BSON\Binary | Identifie une clé de données par `_id`. La valeur est un UUID (sous-type binaire 4). Cette option est mutuellement exclusive avec `keyAltName` et l'une des deux est requise.
  queryType | string | Le type de requête pour évaluer les requêtes avec des charges utiles chiffrées indexées. Spécifiez l'une des constantes suivantes de ClientEncryption : `MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY` `MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE` Cette option s'applique uniquement et ne peut être spécifiée que lorsque `algorithm` est `MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED` ou `MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE`.
  rangeOpts | array | Options d'index pour un champ de chiffrement interrogeable prenant en charge les requêtes "range". Les options ci-dessous doivent correspondre aux valeurs définies dans `encryptedFields` de la collection cible. Pour les types de champ BSON double et decimal128, `min`, `max` et `precision` doivent être tous définis ou tous non définis.
  Options d'index de plage
  Option | Type | Description
  --- | --- | ---
  min | mixed | Requis si `precision` est défini. La valeur BSON minimale de la plage.
  max | mixed | Requis si `precision` est défini. La valeur BSON maximale de la plage.
  sparsity | int | Optionnel.Entier positif sur 64 bits.
  precision | int | Facultatif. Entier positif sur 32 bits spécifiant la précision à utiliser pour le chiffrement explicite. Peut uniquement être défini pour les types de champ BSON double ou decimal128.
  trimFactor | int | Optionnel. Entier positif sur 32 bits.

### Valeurs de retour

Renvoie l'expression chiffrée en tant qu'objet.

### Erreurs / Exceptions

- Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
- Lance une MongoDB\Driver\Exception\EncryptionException si une erreur se produit lors du chiffrement de l'expression

### Historique

Version | Description
--- | ---
PECL mongodb 1.20.0 | Ajouté l'option de plage `"trimFactor"`. L'option de plage `"sparsity"` est désormais optionnelle.

### Voir aussi

- MongoDB\Driver\Manager::__construct() - Crée un nouveau Manager MongoDB
- MongoDB\Driver\ClientEncryption::encrypt() - Chiffre une valeur