PHP Conference Nagoya 2025

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpressionChiffre 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 :

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 :

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

add a note

User Contributed Notes

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