Docs Menu
Docs Home
/
Relational Migrator
/ / /

計算フィールドの追加

項目一覧

  • 始める前に
  • このタスクについて
  • 手順
  • string の連結
  • String の分割
  • 文字列の置換
  • string 値のチェック
  • 数学演算の実行
  • 論理条件に基づいて値を割り当てる
  • Extract JSON Values
  • 配列要素にアクセスする
  • 日付の解析
  • 詳細

計算フィールドを使用すると、 JavaScript式を使用して既存のデータベース列の値を組み合わせて、ドキュメントに新しいフィールドを作成できます。計算フィールドは、移行ジョブ中に行が処理されるたびに評価されます。

計算フィールドを作成するには、マッピング ルールを定義する必要があります。

マッピング ルールを作成するには、次のページを参照してください。

  • 推奨マッピングからのルールの作成

  • MongoDB へのルールを作成

  • リレーショナルからルールを作成

計算フィールド式は、構文 columns["<COLUMN_NAME>"]を使用して、現在のソースデータベース行から値にアクセスします。

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

  1. Mapping画面から、 Schema modelペインまたは図ビューでテーブルまたはコレクション名をクリックします。

  2. 新しいマッピング ルールを追加するか、既存のマッピング ルールを編集します。

  3. All fieldsラベルの右側にある+アイコンをクリックします。

  4. Field Nameテキスト ボックスに新しいフィールドの名前を定義します。

  5. Value expressionテキスト ボックスの新しいフィールドに有効な JavaScript 式を定義します。

  6. [Done] をクリックします。

  7. [Save and close] をクリックします。

次回の移行ジョブの実行後にMongoDBに新しいフィールドが表示されます。

次の例は、計算フィールドで使用できる JavaScript 式を示しています。

2 つの列を 1 つのフィールドに結合します。

次の例では、 firstName列とlastName列の string 値を連結します。

式:

columns["firstName"] + ' ' + columns["lastName"]

入力:

コラム

firstName

John

lastName

Smith

出力:

"John Smith"

指定された文字に基づいて列値を配列に分割します。

次の例では、スペース文字を区切り文字として使用してfullName列を配列に分割し、配列の最初の要素を返します。

式:

columns["fullName"].split(' ')[0]

入力:

コラム

fullName

John Doe

出力:

"John"

正規表現パターンを適用して、列内のstring値を置き換えます。

次の例では、 fullName列で string smithを大文字と小文字を区別せずに正規表現検索します。 一致が見つかった場合、式は一致の string をDoeに置き換えます。

式:

columns["fullName"].replace(/smith/i, "Doe")

入力:

コラム

fullName

John Smith

出力:

"John Doe"

列に string 値が含まれているかどうかに基づいて true または false を返します。

The following example returns true if the value in the fullName column includes the string Smith. fullName列に string Smithが含まれていない場合、式はfalseを返します。

式:

columns["fullName"].includes("Smith")

入力:

コラム

fullName

John Smith

出力:

true

列値に対して数学演算を実行します。

次の例では、 col1列とcol2列の値を乗算します。

式:

columns["col1"] * columns["col2"]

入力:

コラム

coll1

3

coll2

2

出力:

6

論理条件に基づいて列値を割り当てます。

次の例では、 col1の値が3の場合はyesが返され、 col13以外の値の場合はnoが返されます。

式:

columns["col1"] === 3 ? "yes" : "no"

入力:

コラム

coll1

3

出力:

yes

計算されたフィールド式を含む JSON データ型として保存されたデータにアクセスします。 JSON データ型の列(Postgres)が必要です。

次の例では、 Employee列の値から埋め込まれたstateフィールドの値を返します。

式:

columns["Employee"].Address.state

入力:

{
Employee: {
name: "Mark",
Address: {
state: "California"
}
}
}

出力:

"California"

計算フィールド式を含む配列データ型として保存されたデータにアクセスします。 配列データ型列(Postgres または MySQL)が必要です。

次の例では、 myArray列の値の 2 番目の要素を返します。

式:

columns["myArray"][1]

入力:

コラム

myArray

[ "a", "b", "c" ]

出力:

"b"

ISO8601 形式の string を日付に解析します。

次の例では、 dateAsString列の string 値を日付に変換しています。

式:

new Date(columns["dateAsString"])

入力:

コラム

dateAsString

"2009-02-11"

出力:

2009-02-11T0:00:00Z

戻る

計算フィールド