Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Referencia de Conversión de Tipos de Datos

Esta página presenta ejemplos que muestran el resultado de convertir el valor de origen y el tipo de dato a un tipo de dato BSON específico mediante campos personalizados.

  • Los errores de la tarea de migración dan como resultado BsonNull valores para los campos afectados. La estrategia de manejo de valores nulos para el campo no afecta este comportamiento.

  • Tu tarea de migración continúa con errores a menos que alcance el umbral que definiste al crear la tarea de migración.

  • Al definir Campos Calculados y Personalizar campos de ID, Relational Migrator muestra un tipo de dato inicial de default. Cuando ejecutes un trabajo de migración, el Relational Migrator actualizará este tipo de datos.

El siguiente ejemplo muestra resultados de aplicar la personalización del tipo de datos para el valor 100 con un tipo de datos Integer.

Tipo de conversión
Valor de conversión

Boolean

false

Date

Thu Jan 01 10:00:00 AEST 1970

Decimal

100.0

Double

100.0

Integer

100

Long

100

String

100

El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor true con un tipo de dato Boolean.

Tipo de conversión
Valor de conversión

Boolean

true

Date

Thu Jan 01 10:00:00 AEST 1970

Decimal

1.0

Double

1.0

Integer

1

Long

1

String

"true"

El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor 1233140483647 con un tipo de dato Long.

Tipo de conversión
Valor de conversión

Boolean

false

Date

Wed Jan 28 22:01:23 AEDT 2009

Decimal

1233140483647.0

Double

1233140483647.0

Integer

Error (Too big)

Long

1233140483647

String

"1233140483647"

El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor 26.55 con un tipo de dato Decimal.

Tipo de conversión
Valor de conversión

Boolean

false

Date

Error

Decimal

26.55

Double

26.55

Integer

26

Long

26

String

"26.55"

El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor "Hello" con un tipo de dato String.

Tipo de conversión
Valor de conversión

Boolean

false

Date

Error

Decimal

Error

Double

Error

Integer

Error

Long

Error

String

"Hello"

El siguiente ejemplo muestra los resultados de aplicar la personalización del tipo de dato para el valor "true" con un tipo de dato String.

Tipo de conversión
Valor de conversión

Boolean

true

Date

Error

Decimal

Error

Double

Error

Integer

Error

Long

Error

String

"true"

Las columnas de Oracle TIMESTAMP(0-9) admiten las siguientes opciones de tipo BSON. El ejemplo usa el valor fuente 2025-01-01 12:34:56.123456789 con un tipo de dato TIMESTAMP(9).

Tipo BSON
Comportamiento
Salida de ejemplo

Date (por defecto)

Se trunca a precisión de milisegundos. Para TIMESTAMP(0-3), no ocurre pérdida de precisión.

2025-01-01T12:34:56.123Z

String

Conserva la precisión total de submilisegundos como una string.

"2025-01-01 12:34:56.123456789Z"

Long (milliseconds)

Almacena milisegundos desde el Unix epoch como Int64.

1735734896123

Long (microseconds)

Almacena microsegundos desde la Unix epoch como Int64.

1735734896123456

Long (nanoseconds)

Guarda nanosegundos desde la Unix epoch como Int64.

1735734896123456789

Las columnas Oracle TIMESTAMP WITH TIME ZONE admiten las siguientes opciones de tipos BSON. El ejemplo utiliza el valor de origen 2025-01-01 12:34:00.000 -05:00.

Nota

En versiones anteriores a 1.15.4, seleccionar Date para las columnas TIMESTAMP WITH TIME ZONE almacenó la hora local sin cambiar a UTC. La opción actualizada Date (UTC) desplaza la marca de tiempo a UTC usando el desplazamiento de la zona horaria original.

Tipo BSON
Comportamiento
Salida de ejemplo

String (por defecto)

Almacena la marca de tiempo completa, incluido el desplazamiento de la zona horaria, como una string.

"2025-01-01 12:34:00.000 -05:00"

Date (UTC)

Desplaza la marca de tiempo a UTC utilizando la compensación de la zona horaria original.

2025-01-01T17:34:00.000Z

Date (Strip Time Zone)

Almacena el tiempo local del reloj tal cual en UTC, ignorando el desplazamiento de la zona horaria.

2025-01-01T12:34:00.000Z

Date and String (Separate fields)

Crea dos subcampos: timestamp (BSON Date) y timeZone (BSON String).

{ timestamp: 2025-01-01T12:34:00Z, timeZone: "-05:00" }

Long (milliseconds)

Guarda milisegundos desde la hora equivalente a UTC como Int64.

1735752840000

Long (microseconds)

Almacena los microsegundos desde la hora equivalente a UTC como Int64.

1735752840000000

Long (nanoseconds)

Almacena nanosegundos desde la hora equivalente a UTC como Int64.

1735752840000000000

Las columnas de Oracle NUMBER admiten las siguientes opciones de tipo BSON. El tipo BSON predeterminado depende de la escala de la columna (s) y la precisión de enteros (p - s):

  • s > 0Decimal (Decimal128)

  • s <= 0 y (p - s) < 10: Integer (BsonInt32)

  • s <= 0 y 10 <= (p - s) < 19: Long (BsonInt64)

  • s <= 0 y (p - s) >= 19: Decimal (Decimal128)

El ejemplo utiliza el valor de origen 123456789.

Tipo BSON
Comportamiento
Salida de ejemplo

Bool

Trata 0 como falso y cualquier valor numérico distinto de cero como verdadero.

true

Date

Interpreta el NÚMERO como milisegundos desde la Unix epoch (1970-01-01T00:00:00Z). Los valores grandes pueden desbordarse y producir una fecha inválida.

1970-01-02T10:17:36.789+00:00

Decimal

Se asigna a BSON Decimal128. Los valores con más de 34 dígitos significativos pueden perder precisión.

123456789

Double

Convierte a BSON Double (64-bit de coma flotante). Los valores grandes o de alta precisión pueden perder precisión debido al redondeo IEEE 754.

123456789

Integer

Se asigna a BSON Int32. Los valores que superan el rango de Int32 generan un error.

123456789

Long

Se asigna a BSON Int64. Los valores que superan el rango de Int64 generan un error.

123456789

String

Conserva todos los dígitos como una string. Utilizar cuando se requiera una fidelidad numérica total.

"123456789"

Cuando el valor de origen supera los 34 dígitos significativos, la correspondencia Decimal puede perder precisión. El siguiente ejemplo utiliza el valor origen 12345678901234567890123456789012345678 (38 cifras significativas).

Tipo BSON
Comportamiento
Salida de ejemplo

Decimal

Los valores con más de 34 cifras significativas pueden perder precisión.

1.234567890123456789012345678901234E+37

String

Conserva todos los dígitos como una string. Utilizar cuando se requiera una fidelidad numérica total.

"12345678901234567890123456789012345678"

Relational Migrator mapea las columnas de Oracle XMLTYPE a BSON String, almacenando el documento XML como un valor de string.

Nota

Para migrar XMLTYPE columnas, asegúrate de que esté disponible el archivo del controlador Oracle JDBC xdb.jar.

Volver

Campos personalizados

En esta página