조회 필드 추가
이 페이지의 내용
조회 필드를 사용하면 동일한 데이터베이스에 있는 여러 컬렉션의 데이터를 결합하는 차트를 만들 수 있습니다. 조회 필드는 두 번째 컬렉션에서 값이 차트의 기본 데이터 소스에 있는 필드에 해당하는 문서를 가져옵니다.
조회 필드는 컬렉션 간의 상위/하위 및 프라이머리 키/외래 키 관계 또는 한 컬렉션의 필드가 다른 컬렉션의 필드를 참조하는 모든 상황을 활용하는 데 유용합니다. 조회 필드는 $lookup을 사용하여 원격 컬렉션에서 일치하는 문서를 검색합니다.
새 조회 필드 생성
내장된 객체 가 아니며 다른 컬렉션 의 필드 와 일치하는 데이터를 포함하는 차트 데이터 소스 의 모든 필드 에서 조회 필드 를 만들 수 있습니다. 원격 컬렉션 은 다음과 같아야 합니다.
기존 차트 데이터 소스입니다.
로컬 컬렉션과 동일한 데이터베이스의 일부입니다.
참고
로컬 컬렉션을 조회 필드 소스로 사용할 수도 있습니다.
조회 필드를 추가하려면 기존 필드 위로 마우스를 가져간 다음 필드 이름 오른쪽에 있는 ellipsis (...)를 클릭합니다. 드롭다운 메뉴에서 Lookup field를 선택합니다. 모달 창이 나타납니다.
드롭다운 메뉴에서 원하는 컬렉션과 필드를 선택합니다. 원격 필드에는 로컬 필드와 일치하는 데이터가 있는 문서가 하나 이상 포함되어 있어야 하며, 그렇지 않으면 조회 필드가 비어 있게 됩니다.
외부 컬렉션에서 일치하는 모든 문서를 반환하거나 일치하는 첫 번째 문서만 반환할 수 있습니다. 일치하는 모든 문서를 반환하는 것은 상위/하위 및 프라이머리키 관계와 같은 일대다 관계에 권장됩니다. 참조 데이터 코드와 같은 일대일 및 다대일 관계에는 첫 번째 문서만 반환하는 것이 좋습니다. 일치하는 첫 번째 문서만 반환하려면 Return only first matching document 라디오 버튼을 선택합니다.
차트는 새 필드의 이름을 제안하지만 원하는 경우 원하는 이름을 입력할 수 있습니다. 새 필드를 만들려면 Save를 클릭합니다.
새 필드에는 조회 필드임을 나타내는 binoculars 아이콘이 표시됩니다.
중요
조회 필드로 사용하는 모든 필드가 적절하게 인덱싱되는지 확인합니다. 큰 컬렉션에서 인덱싱되지 않은 필드에 대한 조회 작업으로 인해 심각한 성능 문제 또는 시간 초과가 발생할 수 있습니다.
필드 패널에서 조회 필드를 제거하려면 조회 필드 위에 마우스를 놓고 필드 이름 오른쪽에 있는 ellipsis (...)를 클릭합니다. 드롭다운 메뉴에서 Remove field를 선택합니다.
예시
다음 예시에서는 product_catalog
인 데이터 소스와 orders
인 데이터 소스 두 개를 사용합니다.
product_catalog
컬렉션에는 다음 문서가 포함되어 있습니다.
{ "_id" : 76234, "item" : "21 inch monitor" } { "_id" : 38921, "item" : "USB C cable" } { "_id" : 21167, "item" : "keyboard" } { "_id" : 90252, "item" : "60 GB external hard drive" }
orders
컬렉션에는 다음 문서가 포함되어 있습니다.
{ "_id" : 1, "sku": 38921, "quantity": 50 } { "_id" : 2, "sku": 21167, "quantity": 75 } { "_id" : 3, "sku": 76234, "quantity": 15 } { "_id" : 4, "sku": 21167, "quantity": 20 }
orders
컬렉션의 레코드는 sku
필드를 사용하여 product_catalog
컬렉션의 _id
필드를 참조합니다.
목표는 주문한 품목 수를 표시하는 세로 막대형 차트를 만드는 것입니다. 다음 차트는 orders
를 데이터 소스으로 사용합니다. 조회 필드 sku_lookup_product_catalog
는 orders.sku
필드에서 생성됩니다. product_catalog
컬렉션을 원격 데이터 소스로 사용하고 product_catalog._id
를 원격 필드로 사용합니다.
이 차트는 product_catalog.item
을 X축으로, orders.quantity
를 Y축으로 사용합니다.