Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
数据库手册
/ / /

ClientEncryption.encryptExpression()(mongosh方法)

ClientEncryption.encryptExpression(keyId, expression, encOptions)

ClientEncryption.encryptExpression 加密 MQL表达式以查询范围索引,使用查询字段的 keyId 以及 encOptions文档中的查询类型和算法。它返回加密的查询结果。

返回:

binary data作为具有 子类型6 的 对象的加密查询结果。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

clientEncryption = db.getMongo().getClientEncryption()
clientEncryption.encryptExpression(
keyId,
expression,
encOptions
)
Parameter
类型
说明

keyId

UUID

表达式中查询的字段的数据加密密钥。

UUID 是具有子类型 的BSONbinary data 4对象,用于标识特定数据加密密钥。如果为数据库连接配置的密钥保管库中不存在数据加密密钥,encryptExpression() 将返回错误。有关密钥保管库和数据加密密钥的详细信息,请参阅密钥保管库集合。

expression

文档

要加密的范围查询表达式,可为以下形式之一:

  • 采用以下形式的$match表达式:{$and: [{<field>: {$gt: <value1>}}, {<field>: {$lt: <value2> }}]}

  • 采用以下形式的 aggregate 表达式:{$and: [{$gt: [<fieldpath>, <value1>]}, {$lt: [<fieldpath>, <value2>]}]}

表达式还可以使用 $lte$gte

encOptions

文档

一个包含以下字段的文档:

  • algorithm:用于加密 expression 的加密算法。必须设立为 "range"

  • queryType:查询类型。必须设立为 "range"

  • rangeOptions:具有范围查询设置的文档。值必须与集合的加密模式中的值匹配。

    • minmax:与字段的BSON类型匹配的最小值和最大值。

    • precision: MongoDB在查询 doubledecimal128 字段时考虑的有效位数。

    • sparsity:影响MongoDB对范围值进行索引的彻底程度。

    • trimFactor:控制并发插入和更新的吞吐量。

  • contentionFactor:与表达式中字段值的频率有关。有关详细信息,请参阅争用

mongosh客户端字段级别和可查询Queryable Encryption方法需要为客户端加密配置数据库连接。 如果当前数据库连接不是在启用客户端字段级加密的情况下启动的,则:

or

clientEncryption.encryptExpression(
UUID("64e2d87d-f168-493c-bbdf-a394535a2cb9"),
{
$and: [{ val: { $gt: Int32('100') } }, { val: { $lt: Int32('150') } }]
},
{
algorithm: 'range',
queryType: 'range',
rangeOptions: { min: Int32('0'), max: Int32('200') },
contentionFactor: 8
})

如果成功,ClientEncryption.encryptExpression 将返回加密的查询结果。

有关在启用客户端字段级加密或Queryable Encryption的情况下启动MongoDB连接的完整文档,请参阅 Mongo()

后退

ClientEncryption.encrypt

在此页面上