MongoDB\Driver\ClientEncryption::encryptExpression
(mongodb >=1.16.0)
MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression
说明
$expr, ?array $options = null): objectEncrypts 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$lteoperators. A top-level$andoperator is required, even if only a single comparison operator is used.An example of a supported match expression (applies to queries and the
$matchaggregation 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- 
     
Encryption options Option Type Description algorithm string The encryption algorithm to be used. This option is required. Specify one of the following ClientEncryption constants:
MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTICMongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOMMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDMongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXEDMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE
contentionFactor int The contention factor for evaluating queries with indexed, encrypted payloads.
This option only applies and may only be specified when
algorithmisMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDorMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE.keyAltName string Identifies a key vault collection document by
keyAltName. This option is mutually exclusive withkeyIdand exactly one is required.keyId MongoDB\BSON\Binary Identifies a data key by
_id. The value is a UUID (binary subtype 4). This option is mutually exclusive withkeyAltNameand exactly one is required.queryType string The query type for evaluating queries with indexed, encrypted payloads. Specify one of the following ClientEncryption constants:
MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITYMongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE
This option only applies and may only be specified when
algorithmisMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDorMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE.rangeOpts array Index options for a queryable encryption field supporting "range" queries. The options below must match the values set in the
encryptedFieldsof the target collection. For double and decimal128 BSON field types,min,max, andprecisionmust all be set, or all be unset.Range index options Option Type Description min mixed Required if precisionis set. The minimum BSON value of the range.max mixed Required if precisionis set. The maximum BSON value of the range.sparsity int Optional. Positive 64-bit integer. precision int Optional. Positive 32-bit integer specifying precision to use for explicit encryption. May only be set for double or decimal128 BSON field types. trimFactor int Optional. Positive 32-bit integer.  
返回值
Returns the encrypted expression as an object.
错误/异常
- Throws MongoDB\Driver\Exception\InvalidArgumentException on argument parsing errors.
 - Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while encrypting the expression
 
更新日志
| 版本 | 说明 | 
|---|---|
| PECL mongodb 1.20.0 | 
        Added the "trimFactor" range option. The
        "sparsity" range option is now optional.
        | 
      
参见
- MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager
 - MongoDB\Driver\ClientEncryption::encrypt() - Encrypt a value
 
用户贡献的备注
备份地址:http://www.lvesu.com/blog/php/mongodb-driver-clientencryption.encryptexpression.php