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

Referência de conversão de tipo de dados

Esta página descreve exemplos que mostram o resultado da conversão do valor de origem e do tipo de dados para um tipo de dados BSON específico usando campos personalizados.

  • Os erros do tarefa de migração resultam em BsonNull valores para os campos afetados. A estratégia de tratamento nulo do seu campo não afeta esse comportamento.

  • Sua tarefa de migração continua com erros, a menos que atinja o limite definido quando criou a tarefa de migração.

  • Ao definir Campos calculados e Personalizar campos de ID , o Relational Migrator mostra um tipo de dados inicial default de. Quando você executa um tarefa de migração, o Relational Migrator atualiza esse tipo de dados.

O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor 100 com um tipo de dados Integer .

Tipo de conversão
Valor de conversão

Boolean

false

Date

Thu Jan 01 10:00:00 AEST 1970

Decimal

100.0

Double

100.0

Integer

100

Long

100

String

100

O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor true com um tipo de dados Boolean .

Tipo de conversão
Valor de conversão

Boolean

true

Date

Thu Jan 01 10:00:00 AEST 1970

Decimal

1.0

Double

1.0

Integer

1

Long

1

String

"true"

O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor 1233140483647 com um tipo de dados Long .

Tipo de conversão
Valor de conversão

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"

O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor 26.55 com um tipo de dados Decimal .

Tipo de conversão
Valor de conversão

Boolean

false

Date

Error

Decimal

26.55

Double

26.55

Integer

26

Long

26

String

"26.55"

O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor "Hello" com um tipo de dados String .

Tipo de conversão
Valor de conversão

Boolean

false

Date

Error

Decimal

Error

Double

Error

Integer

Error

Long

Error

String

"Hello"

O exemplo a seguir mostra os resultados da aplicação da personalização do tipo de dados para o valor "true" com um tipo de dados String .

Tipo de conversão
Valor de conversão

Boolean

true

Date

Error

Decimal

Error

Double

Error

Integer

Error

Long

Error

String

"true"

As colunas do Oracle TIMESTAMP(0-9) suportam as seguintes opções de tipo BSON. O exemplo utiliza o valor de origem 2025-01-01 12:34:56.123456789 com um tipo de dados TIMESTAMP(9).

Tipo de JSON
Comportamento
Exemplo de saída

Date (padrão)

Trunca com precisão de milissegundos. Para TIMESTAMP(0-3), não ocorre perda de precisão.

2025-01-01T12:34:56.123Z

String

Preserva a precisão total abaixo do milésimo de segundo como uma string.

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

Long (milliseconds)

Armazena milissegundos desde a Era UNIX como Int64.

1735734896123

Long (microseconds)

Armazena microssegundos desde a Era UNIX como Int64.

1735734896123456

Long (nanoseconds)

Armazena nanossegundos desde a Era UNIX como Int64.

1735734896123456789

As colunas do Oracle TIMESTAMP WITH TIME ZONE suportam as seguintes opções de tipo BSON. O exemplo utiliza o valor de origem 2025-01-01 12:34:00.000 -05:00.

Observação

Em versões anteriores a 1.15.4, selecionar Date para TIMESTAMP WITH TIME ZONE colunas armazenou a hora local sem mudar para UTC. A opção Date (UTC) atualizada muda o carimbo de data/hora para UTC usando o deslocamento de zona horário original.

Tipo de JSON
Comportamento
Exemplo de saída

String (padrão)

Armazena o timestamp completo incluindo o deslocamento de zona horário como uma string.

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

Date (UTC)

Desloca o carimbo de data/hora para UTC usando o deslocamento de zona horário original.

2025-01-01T17:34:00.000Z

Date (Strip Time Zone)

Armazena a hora do relógio de parede local como está em UTC, ignorando o deslocamento do zona horário.

2025-01-01T12:34:00.000Z

Date and String (Separate fields)

Cria dois subcampos: timestamp (Data BSON) e timeZone (String BSON).

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

Long (milliseconds)

Armazena milissegundos desde o tempo equivalente a UTC como Int64.

1735752840000

Long (microseconds)

Armazena microssegundos desde o tempo equivalente a UTC como Int64.

1735752840000000

Long (nanoseconds)

Armazena nanossegundos desde o tempo equivalente a UTC como Int64.

1735752840000000000

As colunas do Oracle NUMBER suportam as seguintes opções de tipo BSON. O tipo de BSON padrão depende da escala da coluna (s) e da precisão do número inteiro (p - s):

  • s > 0: Decimal (Decimal128)

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

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

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

O exemplo utiliza o valor de origem 123456789.

Tipo de JSON
Comportamento
Exemplo de saída

Bool

Trata 0 como falso e qualquer valor numérico diferente de zero como verdadeiro.

true

Date

Interpreta o NUMBER como milissegundos desde a Era UNIX (1970-01-01T00:00:00Z). Valores grandes podem estourar e produzir uma data inválida.

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

Decimal

Mapeia para BSON decimal128. Valores com mais de 34 dígitos significativos podem perder a precisão.

123456789

Double

Converte para BSON double (64-bit floating ponto). Valores grandes ou de alta precisão podem perder a precisão devido aos arredondamentos IEEE 754.

123456789

Integer

Mapeia para BSON Int32. Os valores que excedem a faixa Int32 resultam em um erro.

123456789

Long

Mapeia para BSON Int64. Os valores que excedem a faixa Int64 resultam em um erro.

123456789

String

Preserva todos os dígitos como uma string. Use quando a fidelidade numérica total for exigida.

"123456789"

Quando o valor de origem exceder 34 dígitos significativos, o mapeamento Decimal poderá perder a precisão. O exemplo a seguir utiliza o valor de origem 12345678901234567890123456789012345678 (38 dígitos significativos).

Tipo de JSON
Comportamento
Exemplo de saída

Decimal

Valores com mais de 34 dígitos significativos podem perder a precisão.

1.234567890123456789012345678901234E+37

String

Preserva todos os dígitos como uma string. Use quando a fidelidade numérica total for exigida.

"12345678901234567890123456789012345678"

O Relational Migrator mapeia colunas Oracle XMLTYPE para BSON String, armazenando o documento XML como um valor de string.

Observação

Para migrar XMLTYPE colunas, certifique-se de que o arquivo do driver xdb.jar Oracle JDBC esteja disponível.

Voltar

Campos personalizados

Nesta página