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

データ型変換リファレンス

このページでは、カスタマイズされたフィールドを使用してソース値とデータ型を特定の BSON データ型に変換する結果を示す例について説明します。

  • 移行ジョブのエラーにより、影響を受けるフィールドに BsonNull の値が生じます。 フィールドの null 処理戦略は、この動作に影響を与えません。

  • 移行ジョブは、移行ジョブの作成時に定義したしきい値に達しない限り、エラーとともに続行されます。

  • 計算フィールド カスタマイズIDフィールド を定義する場合、 Relational Migrator はdefault の初期データ型を表示します。移行ジョブ を実行すると、 Relational Migrator はこのデータ型を更新します。

次の例では、 Integerデータ型を使用して値100に対してデータ型のカスタマイズを適用した結果を示しています。

変換タイプ
変換値

Boolean

false

Date

Thu Jan 01 10:00:00 AEST 1970

Decimal

100.0

Double

100.0

Integer

100

Long

100

String

100

次の例では、 Booleanデータ型を使用して値trueに対してデータ型のカスタマイズを適用した結果を示しています。

変換タイプ
変換値

Boolean

true

Date

Thu Jan 01 10:00:00 AEST 1970

Decimal

1.0

Double

1.0

Integer

1

Long

1

String

"true"

次の例では、 Longデータ型を使用して値1233140483647に対してデータ型のカスタマイズを適用した結果を示しています。

変換タイプ
変換値

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"

次の例では、 Decimalデータ型を使用して値26.55に対してデータ型のカスタマイズを適用した結果を示しています。

変換タイプ
変換値

Boolean

false

Date

Error

Decimal

26.55

Double

26.55

Integer

26

Long

26

String

"26.55"

次の例では、 Stringデータ型を使用して値"Hello"に対してデータ型のカスタマイズを適用した結果を示しています。

変換タイプ
変換値

Boolean

false

Date

Error

Decimal

Error

Double

Error

Integer

Error

Long

Error

String

"Hello"

次の例では、 Stringデータ型を使用して値"true"に対してデータ型のカスタマイズを適用した結果を示しています。

変換タイプ
変換値

Boolean

true

Date

Error

Decimal

Error

Double

Error

Integer

Error

Long

Error

String

"true"

Oracle TIMESTAMP(0-9) 列は次のBSON型オプションをサポートしています。この例では、ソース値 2025-01-01 12:34:56.123456789TIMESTAMP(9)データ型を使用しています。

BSON 型
動作
出力例

Date (デフォルト)

をミリ秒の精度で切り捨てます。TIMESTAMP(0-3) では、精度の低下は発生しません。

2025-01-01T12:34:56.123Z

String

string として完全に ミリ秒未満の精度を保持します。

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

Long (milliseconds)

Unix エポックからのミリ秒を Int64 として保存します。

1735734896123

Long (microseconds)

Unix エポックからのマイクロ秒を Int64 として保存します。

1735734896123456

Long (nanoseconds)

Unix エポックからのナノ秒を Int64 として保存します。

1735734896123456789

Oracle TIMESTAMP WITH TIME ZONE 列は次のBSON型オプションをサポートしています。この例では、ソース値 2025-01-01 12:34:00.000 -05:00 が使用されています。

注意

1.15.4 より前のリリースでは、UTC にシフトすることなくローカルタイムを保存した TIMESTAMP WITH TIME ZONE 列で Date を選択する。更新された Date (UTC) オプションは、元のタイムゾーンオフセットを使用してタイムスタンプを UTC にシフトします。

BSON 型
動作
出力例

String (デフォルト)

タイムゾーンオフセットを含む完全なタイムスタンプを string として保存します。

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

Date (UTC)

元のタイムゾーンオフセットを使用して、タイムスタンプを UTC にシフトします。

2025-01-01T17:34:00.000Z

Date (Strip Time Zone)

タイムゾーンオフセットを無視して、ローカル ウォール クロックの時間を UTC で保存します。

2025-01-01T12:34:00.000Z

Date and String (Separate fields)

2 つのサブフィールドを作成します: timestamp(BSON Date)と timeZone(BSON String)。

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

Long (milliseconds)

UTC に相当する時間からのミリ秒を Int64 として保存します。

1735752840000

Long (microseconds)

UTC に相当する時間からのマイクロ秒を Int64 として保存します。

1735752840000000

Long (nanoseconds)

UTC に相当する時間からのナノ秒を Int64 として保存します。

1735752840000000000

Oracle NUMBER 列は次のBSON型オプションをサポートしています。デフォルトのBSON型は、列の増やす(s)と整数精度(p - s)によって異なります。

  • s > 0: Decimal(Decimal128)

  • s <= 0 および (p - s) < 10: Integer(BsonInt32)

  • s <= 0 および 10 <= (p - s) < 19: Long(BsonInt64)

  • s <= 0 および (p - s) >= 19: Decimal(Decimal128)

この例では、ソース値 123456789 が使用されています。

BSON 型
動作
出力例

Bool

0 を false として扱い、ゼロ以外の数値を true として扱います。

true

Date

NUMBER を UNIX エポック以降のミリ秒と解釈します(1970-01-01T00:00:00Z)。値が大きいとオーバーフローして無効な日付が発生する可能性があります。

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

Decimal

BSON Decimal128 にマップされます。34 有効桁数を超える値は精度が失われる可能性があります。

123456789

Double

BSON Double(64ビット浮動点)に変換します。IEEE 754 の丸めにより、大きい値または精度の高い値では精度が失われる可能性があります。

123456789

Integer

BSON Int32 にマップされます。Int32 の範囲を超える値はエラーになります。

123456789

Long

BSON Int64 にマップされます。Int64 の範囲を超える値はエラーになります。

123456789

String

すべての数字を string として保持します。完全な数値忠実度が必要な場合は、 を使用します。

"123456789"

ソース値が 34 有効桁数を超えると、Decimal マッピングは精度を失う可能性があります。次の例では、ソース値 12345678901234567890123456789012345678(有効桁数 38)を使用しています。

BSON 型
動作
出力例

Decimal

34 有効桁数を超える値は精度が失われる可能性があります。

1.234567890123456789012345678901234E+37

String

すべての数字を string として保持します。完全な数値忠実度が必要な場合は、 を使用します。

"12345678901234567890123456789012345678"

Relational Migrator は、 Oracle XMLTYPE 列をBSON String にマッピングし、XMLドキュメントをstring 値として保存します。

注意

XMLTYPE 列を移行するには、xdb.jar Oracle JDBC ドライバーファイルが使用可能であることを確認します。

戻る

カスタム フィールド

項目一覧