ClientEncryption.encryptExpression(keyId, expression, encOptions)
ClientEncryption.encryptExpression
加密 MQL表达式以查询范围索引,使用查询字段的keyId
以及encOptions
文档中的查询类型和算法。它返回加密的查询结果。返回: binary data
作为具有 子类型6 的 对象的加密查询结果。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.encryptExpression( keyId, expression, encOptions )
Parameter | 类型 | 说明 |
---|---|---|
|
| 表达式中查询的字段的数据加密密钥。 UUID 是具有子类型 的BSON |
| 文档 | |
| 文档 | 一个包含以下字段的文档:
|
行为
mongosh
客户端字段级别和可查询Queryable Encryption方法需要为客户端加密配置数据库连接。 如果当前数据库连接不是在启用客户端字段级加密的情况下启动的,则:
使用
mongosh
中的Mongo()
构造函数与所需的客户端字段级加密选项建立连接。Mongo()
方法支持以下用于“客户主密钥”(KMS) 管理的“密钥管理服务”(CMK) 提供商:
or
使用
mongosh
命令行选项,用所需选项建立连接。命令行选项仅支持用于 CMK 管理的 Amazon Web Services KMS 提供商。
示例
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()
。