Saltar al contenido principal

Tipos de Datos en NoSQL (MongoDB)

Documento técnico sobre los tipos de datos en MongoDB, su estructura interna y aplicaciones recomendadas, con enfoque práctico para modelado flexible, consulta eficiente y compatibilidad con sistemas distribuidos.


1. Tipos Primitivos

TipoEquivalente BSONDescripciónRecomendaciones de Uso
StringStringCadena de texto UTF-8Nombres, direcciones, contenido textual
NumberIntInt32Entero de 32 bitsContadores, flags, rangos pequeños
NumberLongInt64Entero de 64 bitsTimestamps, acumuladores grandes
NumberDoubleDoublePunto flotante de doble precisiónCálculos estadísticos, valores aproximados
BooleanBooleanVerdadero o falsoEstados lógicos, activación/desactivación
DateDateFecha y hora en milisegundos desde epochRegistro temporal, TTL
NullNullAusencia de valorCampos opcionales, consistencia semántica

2. Tipos Complejos

TipoBSONDescripciónRecomendaciones de Uso
ObjectDocumentObjeto anidado con subcamposModelado de entidades jerárquicas
ArrayArrayLista ordenada de elementosRelaciones 1:N, series de valores
Embedded DocumentDocumentSubdocumento incrustadoEvitar JOINs, mejorar eficiencia de lectura
ObjectIdObjectIdID único hexadecimal de 12 bytesClaves primarias, referencias de documentos
BinaryBinaryDatos binarios (Buffer)Archivos, imágenes, tokens codificados
CodeJavaScriptFragmentos de código JS ejecutableValidaciones o filtros avanzados (uso limitado)

3. Tipos Especiales y Sistema

TipoBSONDescripciónRecomendaciones de Uso
TimestampTimestampMarca de tiempo con orden de inserciónRegistros secuenciales, replicación interna
Decimal128Decimal128Decimal de alta precisión (128 bits)Finanzas, valores exactos
MinKeyMinKeyValor menor posibleComparaciones límite inferior
MaxKeyMaxKeyValor mayor posibleComparaciones límite superior
UndefinedUndefinedValor sin definir (obsoleto)No recomendado, incompatible en versiones nuevas

4. Recomendaciones Generales

  • Flexible por diseño: NoSQL permite estructura variable, ideal para datos heterogéneos o en evolución.
  • Documentos embebidos: Mejoran el rendimiento de lectura; evita sobre-anidamientos que dificultan actualizaciones.
  • Referencias vs. Embedding: Usa referencias (ObjectId) si los datos se comparten entre colecciones.
  • Decimal128: Preferido en sistemas financieros; evita usar Double en cálculos monetarios.
  • Indexación de Arrays: MongoDB permite indexar elementos individuales de un array, útil para filtros complejos.
  • TTL y fechas: Combina campos Date con TTL Index para eliminar documentos automáticamente.
  • Evita tipos obsoletos: Undefined y Code son poco usados y tienen implicaciones de seguridad y compatibilidad.