Docs Menu
Docs Home
/ /

ClientEncryption.encryptExpression() (método mongosh)

ClientEncryption.encryptExpression(keyId, expression, encOptions)

ClientEncryption.encryptExpression cifra un Expresión MQL para consultar un índice de rango, utilizando el keyId del campo consultado y el tipo de consulta y algoritmo del documento encOptions. Devuelve el resultado cifrado de la query.

Devuelve:

El resultado cifrado de la query como un objeto binary data con subtipo 6.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

clientEncryption = db.getMongo().getClientEncryption()
clientEncryption.encryptExpression(
keyId,
expression,
encOptions
)
Parameter
Tipo
Descripción

keyId

UUID

La llave de cifrado de datos para el campo consultado en la expresión.

La UUID es un objeto BSON binary data con el subtipo 4 que identifica una llave de cifrado de datos específica. Si la llave de cifrado de datos no existe en la bóveda de llaves configurada para la conexión de la base de datos, encryptExpression() devuelve un error. Consulte Colección de Bóvedas de Llaves para obtener más información sobre las bóvedas de llaves y las llaves de cifrado de datos.

expression

Documento

La expresión de query de rango a encriptar, como una de:

  • una expresión $match con la forma: {$and: [{<field>: {$gt: <value1>}}, {<field>: {$lt: <value2> }}]}

  • una aggregate expresión en la forma: {$and: [{$gt: [<fieldpath>, <value1>]}, {$lt: [<fieldpath>, <value2>]}]}

Las expresiones también pueden usar $lte o $gte

encOptions

Documento

Un documento con los siguientes campos:

  • algorithm: El algoritmo de cifrado para usar en el cifrado del expression. Debe establecerse en "range".

  • queryTypeTipo de consulta. Debe establecerse en "range".

  • rangeOptionsDocumento con configuración de consultas de rango. Los valores deben coincidir con los de la esquema de cifrado de la colección.

    • min, max: valores mínimos y máximos que coinciden con el tipo BSON del campo.

    • precisionNúmero de dígitos significativos que MongoDB considera al consultar los campos double y decimal128.

    • sparsityAfecta la minuciosidad con la que MongoDB indexa los valores de rango.

    • trimFactorControla el rendimiento de inserciones y actualizaciones concurrentes.

  • contentionFactor: Relacionado con la frecuencia de los valores para los campos en la expresión. Para más detalles, consulta la contención.

Los métodos mongosh de cifrado a nivel de campo del lado del cliente y Queryable Encryption requieren una conexión de base de datos configurada para el cifrado del lado del cliente. Si la conexión actual a la base de datos no se inició con el cifrado a nivel de campo del lado del cliente habilitado, entonces:

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
})

Si tiene éxito, ClientEncryption.encryptExpression devuelve el resultado cifrado de la query.

Para obtener documentación completa sobre el inicio de conexiones de MongoDB con el cifrado a nivel de campo del lado del cliente o Queryable Encryption habilitado, consulte Mongo().

Volver

ClientEncryption.encrypt

En esta página