ClientEncryption.encryptExpression()
ClientEncryption.encryptExpression(keyId, expression, encOptions)
ClientEncryption.encryptExpression
encrypts an MQL expression to query a range index, using the queried field'skeyId
and the query type and algorithm from theencOptions
document. It returns the encrypted result of the query.Returns: The encrypted result of the query as a
binary data
object with subtype 6.
Compatibility
This command is available in deployments hosted in the following environments:
MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
MongoDB Enterprise: The subscription-based, self-managed version of MongoDB
MongoDB Community: The source-available, free-to-use, and self-managed version of MongoDB
Syntax
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.encryptExpression( keyId, expression, encOptions )
Parameter | Type | Description |
---|---|---|
|
| The data encryption key for the field queried in the expression. The UUID is a BSON
|
| document | |
| document | A document with the fields:
|
Behavior
The mongosh
client-side field level and queryable
encryption methods require a database connection configured for
client-side encryption. If the current database connection was not
initiated with client-side field level encryption enabled, either:
Use the
Mongo()
constructor from themongosh
to establish a connection with the required client-side field level encryption options. TheMongo()
method supports the following Key Management Service (KMS) providers for Customer Master Key (CMK) management:
or
Use the
mongosh
command line options to establish a connection with the required options. The command line options only support the Amazon Web Services KMS provider for CMK management.
Examples
clientEncryption.encryptExpression( UUID("64e2d87d-f168-493c-bbdf-a394535a2cb9"), { $and: [{ val: { $gt: NumberInt('100') } }, { val: { $lt: NumberInt('150') } }] }, { algorithm: 'range', queryType: 'range', rangeOptions: { min: NumberInt('0'), max: NumberInt('200') }, contentionFactor: 8 })
If successful, ClientEncryption.encryptExpression
returns the encrypted
query result.
Learn More
For complete documentation on initiating MongoDB connections with
Client-Side Field Level Encryption or Queryable Encryption enabled, see Mongo()
.