임베디드 배열
Embedded array 매핑 규칙을 사용하여 하위 테이블의 값을 상위 테이블에 매핑된 컬렉션 의 문서 아래에 배열 요소로 삽입합니다. Embedded array 매핑 규칙은 고급 매핑 규칙 옵션입니다. 매핑 모델에 명시적으로 추가되어야 합니다.
이 작업에 대하여
Embedded array 매핑 규칙은 매핑하는 관계형 테이블이 외래 키 관계의 다측에 있는 경우 사용할 수 있습니다.
기본 키가 포함된 테이블은 MongoDB 모델의 collection에도 매핑되어야 합니다.
단계
(선택 사항) 매핑 규칙 필터 구성
표현식 이 true
을 반환하는 행을 명시적으로 포함할 수 있습니다. 이는 SQL 쿼리 를 기반으로 필터하다 하고 특정 테이블의 모든 행에 적용 되는 테이블 필터 와는 다릅니다. 매핑 규칙 필터는 특정 매핑에만 적용 됩니다.
Mappings 창에서 다음을 클릭합니다. Advanced settings 옆에 있는 아이콘을 클릭합니다.
Add mapping rule filter 을(를) 선택합니다. 아이콘을 클릭합니다.
Value expression 텍스트 상자에 유효한 JavaScript 필터하다 표현식 을 입력합니다.
(선택 사항) 배열 조건 구성
내장된 배열 을 정렬하고 해당 배열 의 항목 수를 제한할 수 있습니다. 정렬만 적용하거나, 제한만 적용하거나, 둘 다 적용 할 수 있습니다. 단일 항목으로 제한하는 경우 Create an array of primitive values 를 선택하여 단일 요소 배열 대신 문서 로 포함할 수 있는 옵션이 있습니다..
Mappings 창에서 다음을 클릭합니다. Advanced settings 옆에 있는 아이콘을 클릭합니다.
Add array conditions 을(를) 선택합니다. 아이콘을 클릭합니다.
Value expression 텍스트 상자에 필터하다 를 입력합니다.
Sort by and order 헤딩에서 정렬할 소스 필드 를 선택하고 사이를 전환합니다. 오름차순 및 내림차순.
Limit 옵션을 선택합니다.
No limit: No limit
Limit number of rows: 배열 에 반환되는 최대 요소 수를 입력합니다. 기본값은
10
입니다.
참고
제외된 필드는 정렬할 수 없습니다. 이전에 선택한 정렬 필드 가 나중에 제외되면 배열 점 이 제거됩니다.
연속 작업 의 CDC 단계 중에 배열 이 수정되는 경우 정렬 및 제한은 새로 수정된 행과 기존 배열 요소만 고려하고 배열 에 없는 테이블의 다른 값은 고려하지 않습니다.
필드 구성
새 매핑 규칙에 대한 옵션을 정의합니다. 매핑 규칙 옵션을 정의할 때 다음을 수행할 수 있습니다.
collection 이름을 변경합니다.
컬렉션 이름을 변경하려면 Name 텍스트 상자를 클릭하고 새 이름을 입력합니다. 변경 사항을 저장하려면 텍스트 상자 외부를 클릭합니다. 해당 이름이 이미 사용 중인 경우 유효성 검사 오류가 발생합니다.
계산된 필드를 추가 하여 관계형 소스 열을 기반으로 새 필드를 만듭니다. 자세한 내용은 계산된 필드 를 참조하세요.
필드 이름을 변경합니다.
다음을 클릭하여 동기화 작업에서 필드를 포함하거나 제외합니다. 아이콘을 클릭합니다.
예시
이 섹션에서는 Embedded array 매핑 규칙의 관계형 입력과 MongoDB 출력을 보여 줍니다.
임베디드 배열
이 예시에서는
Customer 테이블에 Embedded Array 매핑 규칙이 적용됩니다.
Source table 이(가) Order(으)로 설정됩니다.
Prefix 이(가) (root)(으)로 설정됩니다.
Field Name 이(가) orders(으)로 설정됩니다.
이 예제의 입력 및 출력을 보려면 아래 탭을 클릭하세요.
Customer
테이블:
ID | 이름 | 주소 1 | 주소 2 | 주소 3 |
---|---|---|---|---|
1 | Joelynn Fawthrop | 86 드와이트 패스 | Caregal | 3800-854 |
Orders
테이블:
주문 ID | CustomerID | 총 금액 | OrderStatusID |
---|---|---|---|
1 | 1 | 50.00 | 1 |
4 | 1 | 500.00 | 3 |
이제 Customer
컬렉션의 문서에는 Order
세부 정보가 Orders
라는 객체 배열 필드로 포함되어 있습니다.
이제 모든 고객 주문이 Customer
컬렉션에서 중첩된 문서의 배열로 표시됩니다.
{ "_id": { "CustomerID": 1 }, "Name": "Joelynn Fawthrop", "Address1": "86 Dwight Pass", "Address2": "Carregal", "Address3": "3800-854", "Orders": [ { "OrderID": 1, "CustomerID": 1, "TotalAmount": 50, "OrderStatusID": 1 }, { "OrderID": 4, "CustomerID": 1, "TotalAmount": 500, "OrderStatusID": 1 } ] }