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

Campos cifrados y queries activadas

Cuando utilices Queryable Encryption, deberÔs definir campos cifrados a nivel de colección mediante un esquema de cifrado. El cifrado de un campo y la habilitación de consultas incrementan los requerimientos de almacenamiento y afectan el rendimiento de las consultas. Puede configurar un campo cifrado para consultas de igualdad o de rango, pero no para ambas opciones. Configura los campos para el tipo de query esperado.

Para obtener instrucciones sobre cómo crear un esquema de cifrado y configurar la consulta, consulta Crea un esquema de cifrado.

Para obtener una lista de operadores del query admitidos y el comportamiento con campos cifrados, consulta Operadores del query admitidos.

MongoDB admite el uso de validación de esquema para aplicar el cifrado de campos específicos en una colección. Los clientes que usan Queryable Encryption automÔtica se comportan de manera diferente dependiendo de la configuración de la conexión de la base de datos:

  • Si el objeto de conexión encryptedFieldsMap contiene una clave para la colección especificada, el cliente utiliza ese objeto para realizar el cifrado Queryable Encryption de forma automĆ”tica, en vez de utilizar el esquema remoto. Como mĆ­nimo, las reglas locales deben cifrar todos los campos que cifre el esquema remoto.

  • Si el objeto connection encryptedFieldsMap no contiene una clave para la colección especificada, el cliente descarga el esquema remoto del servidor para la colección y lo utiliza en su lugar.

    Importante

    Comportamiento del Esquema Remoto

    Cuando se utiliza un esquema remoto:

    • El cliente confĆ­a en que el servidor tiene un esquema vĆ”lido

    • El cliente utiliza el esquema remoto para realizar Ćŗnicamente Queryable Encryption automĆ”tico. El cliente no aplica ninguna otra regla de validación especificada en el esquema.

Puede hacer que un campo cifrado sea consultable. Para cambiar qué campos estÔn cifrados o pueden ser consultados, reconstruya el esquema de cifrado de la colección y vuelva a crear la colección.

Si no es necesario query un campo cifrado, es posible que no sea necesario activar la query en ese campo. Todavƭa puedes recuperar el documento consultando otros campos que sean consultables o no estƩn encriptados.

Para cada colección cifrada, MongoDB crea dos colecciones de metadatos, lo que aumenta el espacio de almacenamiento. MongoDB crea un índice para cada campo cifrado, lo que aumenta la duración de las operaciones de escritura en ese campo. Cuando una operación de escritura actualiza un campo indexado, MongoDB actualiza el índice relacionado.

MongoDB proporciona los siguientes parÔmetros para facilitar la depuración y la optimización del rendimiento:

min, max

Tipo de query: Solo queries de rango.

Tipo: debe coincidir con el bsonType del campo.

Obligatorio si bsonType es decimal o double. Opcional pero muy recomendable si es int, long o date. Por defecto, los valores mƭnimos y mƔximos de bsonType.

Especifica valores mƭnimos y mƔximos (inclusive) queryables para un campo cuando sea posible, ya que lƭmites mƔs pequeƱos mejoran la eficiencia de la query. Si se consultan valores fuera de estos lƭmites, MongoDB devuelve un error.

Importante

Los parÔmetros espaciado, precisión, trimFactor y contención estÔn pensados solo para usuarios avanzados. Los valores por defecto de estas opciones son adecuados para la mayoría de los casos de uso y sólo deben modificarse si su caso de uso lo requiere.

sparsity

Tipo de query: Solo queries de rango.

Tipo: Entero del 1al4.

Opcional. Se establece por defecto en 2.

Afecta la exhaustividad con la que MongoDB indexa los valores de rango. Una baja dispersión (indexación densa) mejora el rendimiento de las queries, pero almacena mÔs documentos en las colecciones de metadatos cifrados para cada operación de inserción o actualización, causando un mayor sobrecosto de almacenamiento. Una dispersión elevada hace lo contrario.

precision

Tipo de query: Solo queries de rango.

Tipo: Entero.

opcional. Permitido solo si bsonType es double o decimal. Si no se establece, MongoDB utiliza la misma precisión mÔxima que el bsonType, ya sea double o decimal.

Limita cuÔntos dígitos después del punto decimal se tienen en cuenta al consultar un campo double o decimal. Se descartan los dígitos adicionales, no se redondean. Por ejemplo, un precision de 1 trata 10.18 como 10.1 para queries. El valor cifrado aún se almacena como 10.18.

Especificar precision y limitarlo cuando sea posible. Cada dígito aumenta la sobrecarga de almacenamiento y tiene un gran impacto en el rango de búsqueda y la generación de índices.

trimFactor

Tipo de query: Solo queries de rango.

Tipo: Entero.

Opcional. Se establece por defecto en 6.

El trimFactor controla el rendimiento de inserciones y actualizaciones concurrentes. Un trimFactor mƔs alto aumenta el rendimiento de inserciones y actualizaciones concurrentes, a costa de ralentizar algunas operaciones de lectura de rangos. Un trimFactor mƔs bajo hace lo contrario.

contention

Tipo de consulta: consultas de igualdad y de rango.

Tipo: Entero.

Opcional. Se establece por defecto en 8.

Las operaciones de escritura concurrentes, como insertar el mismo par de campo/valor en varios documentos en rÔpida sucesión, pueden provocar conflictos que retrasan las operaciones.

Con Queryable Encryption, MongoDB rastrea las ocurrencias de cada par campo/valor en una colección cifrada utilizando un contador interno. El factor de contención particiona este contador, similar a un arreglo. Esto minimiza los problemas al incrementar el contador al usar insert, update o findAndModify para agregar o modificar un campo cifrado con el mismo par campo/valor en sucesión cercana. contention = 0 crea un arreglo con un elemento en el índice 0. contention = 4 crea un arreglo con 5 elementos en los índices 0-4. MongoDB incrementa un elemento aleatorio del arreglo durante la inserción.

Cuando no se establece, contention se configura por defecto en 8, lo que proporciona un alto rendimiento para la mayoría de las cargas de trabajo. Una mayor contención mejora el rendimiento de las operaciones de inserción y actualización en campos de baja cardinalidad, pero disminuye el rendimiento de búsqueda.

Opcionalmente, puedes incluir contention en los campos consultables para cambiar el valor de su valor por defecto de 8.

Para obtener mÔs información sobre el factor de contención y sus implicancias criptogrÔficas, consulte la "Sección 9: Directrices" en Articulo Técnico de Queryable Encryption de MongoDB.