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

注意:

范围算法仅供实验使用。它不适合公开使用。

该扩展目前不支持 Decimal128 BSON 字段类型的范围查询。

参数

expr

要加密的匹配或聚合表达式。表达式必须使用至少一个 $gt$gte$lt$lte 运算符。即使只使用单个比较运算符,也需要顶级 $and 运算符。

支持的匹配表达式的示例(适用于查询和 $match 聚合阶段)如下

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

支持的聚合表达式的示例如下

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

加密选项
选项 类型 描述
algorithm string

要使用的加密算法。此选项是必需的。指定以下之一 ClientEncryption 常量

contentionFactor int

用于评估使用索引加密有效负载的查询的竞争因素。

此选项仅适用于 algorithmMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE 时,并且只能指定在这些情况下。

keyAltName string

通过 keyAltName 标识密钥保管库集合文档。此选项与 keyId 相互排斥,并且必须且只能指定其中一个。

keyId MongoDB\BSON\Binary

通过 _id 标识数据密钥。该值是 UUID(二进制子类型 4)。此选项与 keyAltName 相互排斥,并且必须且只能指定其中一个。

queryType string

用于评估使用索引加密有效负载的查询的查询类型。指定以下之一 ClientEncryption 常量

此选项仅适用于 algorithmMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE 时,并且只能指定在这些情况下。

rangeOpts array

支持“范围”查询的可查询加密字段的索引选项。以下选项必须与目标集合的 encryptedFields 中设置的值匹配。对于双精度和 decimal128 BSON 字段类型,minmaxprecision 必须全部设置或全部未设置。

范围索引选项
选项 类型 描述
min mixed 如果设置了 precision,则为必需。范围的最小 BSON 值。
max mixed 如果设置了 precision,则为必需。范围的最大 BSON 值。
sparsity int 必需。正 64 位整数。
precision int 可选。正 32 位整数,指定用于显式加密的精度。只能为双精度或 decimal128 BSON 字段类型设置。
trimFactor int 必需。正 32 位整数。

返回值

返回加密后的表达式作为对象。

错误/异常

另请参阅

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top