Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

ClientEncryption.encryptExpression() (método mongosh)

ClientEncryption.encryptExpression(keyId, expression, encOptions)

ClientEncryption.encryptExpression Cifra una expresión MQL para consultar un índice de rango, utilizando el campo consultado () keyId y el tipo y algoritmo de consulta del encOptions documento. Devuelve el resultado cifrado de la consulta.

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.

El UUID es un objeto BSON binary data con el subtipo 4 que identifica una llave específica de cifrado de datos. Si la llave de cifrado de datos no existe en el almacén de claves configurado para la conexión de la base de datos, encryptExpression() devuelve un error. Consulte Colección de Bóvedas de Llaves para más información sobre bóvedas de claves y 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().