Docs Menu
Docs Home
/ /

Nombres de campos con puntos y signos de dólar

MongoDB permite nombres de campo que contengan signos de dólar ($) o puntos (.). Sin embargo, no se recomienda el uso de estos caracteres en los nombres de campo, ya que MongoDB no admite algunas funciones de estos campos.

En la mayoría de los casos, los datos almacenados con nombres de campo como estos no son directamente accesibles. Es necesario usar métodos auxiliares como $getField$setField, y en consultas que acceden a esos $literal campos.

Las reglas de validación del nombre de campo no son las mismas para todos los tipos de operaciones de almacenamiento.

Existen algunas restricciones generales sobre el uso de nombres de campo con prefijo de dólar ($) o que contengan un punto (.). Estos campos no pueden:

  • Estar indexado

  • Se utilizará como parte de una clave de fragmento

  • Ser validado usando $jsonSchema

  • Modificarse con una secuencia de escape

  • Ser utilizado con cifrado a nivel de campo

  • Se utilizará como subcampo en un documento _id

  • Tener más de 255 palabras separadas por puntos en los nombres de campo

Advertencia

Posible pérdida de datos con signos de dólar ($) y puntos (.)

Existe una pequeña posibilidad de pérdida de datos cuando se utilizan nombres de campo con el prefijo dólar ($) o nombres de campo que contienen puntos (.) si estos nombres de campo se utilizan junto con escrituras no reconocidas (nivel de confirmación de escritura w=0) en servidores que sean anteriores a MongoDB 5.0.

Al ejecutar los comandos insert, update y findAndModify, los controladores compatibles con la versión 5.0 eliminan las restricciones sobre el uso de documentos con nombres de campo que tengan el prefijo dólar ($) o que contengan puntos (.). Estos nombres de campo generaban un error del lado del cliente en versiones anteriores del controlador.

Las restricciones se eliminan independientemente de la versión del servidor a la que esté conectado el controlador. Si un controlador 5.0 envía un documento a un servidor más antiguo, el documento será rechazado sin enviar un error.

Advertencia

Preocupaciones de importación y exportación con signos de dólar ($) y puntos (.)

A partir de MongoDB 5.0, los nombres de los campos del documento pueden tener prefijo de dólar ($) y pueden contener puntos (.). Sin embargo, mongoimport y mongoexport pueden no funcionar como se espera en algunas situaciones con nombres de campos que utilizan estos caracteres.

MongoDB Extended JSON v2 no puede diferenciar entre los contenedores de tipo y los campos que tienen el mismo nombre que los contenedores de tipo. No utilices formatos JSON extendidos en contextos donde las representaciones BSON correspondientes puedan incluir claves con prefijo de dólar ($). El mecanismo DBRef es una excepción a esta regla general.

También hay restricciones en el uso de mongoimport y mongoexport con puntos (.) en los nombres de campo. Dado que los archivos CSV utilizan el punto (.) para representar jerarquías de datos, un punto (.) en el nombre de un campo se interpretará incorrectamente como un nivel de anidamiento.

Para obtener ejemplos de cómo manejar nombres de campos que contienen puntos y signos de dólar, consulte estas páginas:

Volver

Queries distribuidos

En esta página