MongoDB\Driver\ClientEncryption::encryptExpression

Encrypts a match or aggregate expression

&reftitle.description; final public `object` `MongoDB\Driver\ClientEncryption::encryptExpression` ``array``object```expr` ``array``null```options`&null;

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 range algorithm is experimental only. It is not intended for public use.

The PHP driver does not yet support range queries for decimal128 BSON field types.

&reftitle.parameters;

`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>' ] ],
          ],
      ]

&mongodb.parameter.encryptOpts;
&reftitle.returnvalues;

Returns the encrypted expression as an object.

&reftitle.errors;

&mongodb.throws.argumentparsing;
- Throws `MongoDB\Driver\Exception\EncryptionException` if an error occurs while encrypting the expression

&reftitle.seealso;

- `MongoDB\Driver\Manager::__construct`