계산된 필드 추가
이 페이지의 내용
계산된 필드를 사용하면 JavaScript 표현식을 사용하여 기존 데이터베이스 열의 값을 결합하여 문서에 새 필드를 만들 수 있습니다. 계산된 필드는 마이그레이션 작업 중에 행이 처리될 때마다 평가됩니다.
시작하기 전에
계산된 필드를 생성하려면 매핑 규칙을 정의해야 합니다.
매핑 규칙을 생성하려면 다음 페이지를 참조하세요.
이 작업에 대하여
계산된 필드 표현식은 columns["<COLUMN_NAME>"]
구문을 사용하여 현재 소스 데이터베이스 행의 값에 액세스합니다.
When defining Calculated Fields and Customize ID Fields, Relational Migrator shows an initial data type of default. When you run a migration job, Relational Migrator updates this data type.
단계
Mapping 화면의 Schema model 창 또는 다이어그램 보기에서 테이블 또는 collection 이름을 클릭합니다.
새 매핑 규칙을 추가하거나 기존 매핑 규칙을 편집합니다.
All fields 라벨 오른쪽에 있는 + 아이콘을 클릭합니다.
Field Name 텍스트 상자에 새 필드의 이름을 정의합니다.
Value expression
텍스트 상자의 새 필드에 유효한 JavaScript 표현식을 정의합니다.Done를 클릭합니다.
Save and close를 클릭합니다.
새 필드 는 다음 마이그레이션 작업 이 실행된 후 MongoDB 에 표시됩니다.
예시
다음 예제에서는 계산된 필드에서 사용할 수 있는 JavaScript 표현식을 보여줍니다.
문자열 연결
두 열을 단일 필드로 결합합니다.
다음 예에서는 firstName
및 lastName
열의 문자열 값을 연결합니다.
표현식:
columns["firstName"] + ' ' + columns["lastName"]
입력:
열 | 값 |
---|---|
firstName | John |
lastName | Smith |
출력:
"John Smith"
문자열 분할
지정된 문자를 기반으로 열 값을 배열로 분할합니다.
다음 예에서는 공백 문자를 구분자로 사용하여 fullName
열을 배열로 분할하고 배열의 첫 번째 요소를 반환합니다.
표현식:
columns["fullName"].split(' ')[0]
입력:
열 | 값 |
---|---|
fullName | John Doe |
출력:
"John"
문자열 바꾸기
정규식 패턴을 적용하여 열의 문자열 값을 바꿉니다.
다음 예시에서는 smith
문자열에 대해 fullName
열에서 대소문자를 구분하지 않는 정규식 검색을 수행합니다. 일치하는 항목이 발견되면 표현식은 일치하는 문자열을 Doe
로 바꿉니다.
표현식:
columns["fullName"].replace(/smith/i, "Doe")
입력:
열 | 값 |
---|---|
fullName | John Smith |
출력:
"John Doe"
문자열 값 확인
열에 문자열 값이 포함되어 있는지 여부에 따라 true 또는 false를 반환합니다.
다음 예에서는 fullName
열의 값에 문자열 Smith
가 포함된 경우 true
을 반환합니다. fullName
열에 문자열 Smith
가 포함되어 있지 않으면 표현식은 false
를 반환합니다.
표현식:
columns["fullName"].includes("Smith")
입력:
열 | 값 |
---|---|
fullName | John Smith |
출력:
true
수학 연산 수행
열 값에 대해 수학적 연산을 수행합니다.
다음 예에서는 col1
및 col2
열의 값을 곱합니다.
표현식:
columns["col1"] * columns["col2"]
입력:
열 | 값 |
---|---|
coll1 | 3 |
coll2 | 2 |
출력:
6
논리적 조건에 따라 값 할당
논리적 조건에 따라 열 값을 할당합니다.
다음 예에서는 col1
의 값이 3
인 경우 yes
를 반환하고 col1
이 3
이외의 값이면 no
을 반환합니다.
표현식:
columns["col1"] === 3 ? "yes" : "no"
입력:
열 | 값 |
---|---|
coll1 | 3 |
출력:
yes
JSON 값 추출
계산된 필드 표현식을 사용하여 JSON 데이터 유형으로 저장된 데이터에 액세스합니다. JSON 데이터 유형 열이 필요합니다(Postgres).
다음 예제에서는 Employee
열의 값에서 포함된 state
필드의 값을 반환합니다.
표현식:
columns["Employee"].Address.state
입력:
{ Employee: { name: "Mark", Address: { state: "California" } } }
출력:
"California"
배열 요소에 액세스
계산된 필드 표현식을 사용하여 배열 데이터 유형으로 저장된 데이터에 액세스합니다. 배열 데이터 유형 열이 필요합니다(Postgres 또는 MySQL).
다음 예에서는 myArray
열에 있는 값 중 두 번째 요소를 반환합니다.
표현식:
columns["myArray"][1]
입력:
열 | 값 |
---|---|
myArray | [ "a", "b", "c" ] |
출력:
"b"
날짜 구문 분석
ISO8601 형식의 날짜 문자열을 날짜로 구문 분석합니다.
다음 예에서는 dateAsString
열의 문자열 값을 날짜로 변환합니다.
표현식:
new Date(columns["dateAsString"])
입력:
열 | 값 |
---|---|
dateAsString | "2009-02-11" |
출력:
2009-02-11T0:00:00Z