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 keyId del campo consultado y el tipo de query y el algoritmo del documento encOptions. Devuelve el resultado cifrado de la query.

Devuelve:

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

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

  • MongoDB Atlas: El servicio totalmente administrado 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 subtipo 4 que identifica una clave de cifrado de datos específica. Si la clave de cifrado de datos no existe en el almacén de claves configurado para la conexión a la base de datos, encryptExpression() devuelve un error.Consulte Colecciones de almacenes de claves para obtener más información sobre almacenes de claves y claves 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 de cifrado a nivel de campo y consultables del lado del cliente mongosh requieren una conexión a la 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, se producirá uno de los siguientes errores:

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().