Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
Atlas Charts
/ /

임베딩된 대시보드 필터링

다음을 추가하여 내장된 대시보드를 사용자 지정할 수 있습니다.

  • 사전 필터. Charts 임베딩 SDK에서 preFilter 옵션을 사용하거나 iframe URL에 다양한 쿼리 매개변수를 추가합니다.

  • 필터. Charts 임베딩 SDK에서 filter 옵션을 사용하거나 iframe URL에 다양한 쿼리 매개변수를 추가합니다.

사전 필터와 필터를 모두 사용하는 것이 선택 사항인 경우에도 동일한 차트 에서 사용할 수 있습니다. 사전 필터(지정된 경우)는 항상 뷰 이후와 대시보드의 쿼리 및 필터 이전에 실행 됩니다. 파이프라인 세그먼트의 순서에 학습 보려면 집계 파이프라인 을 참조하세요.

대시보드 작성자 는 임베딩 애플리케이션 코드로 설정하다 하거나 대시보드 뷰어가 추가한 사전 필터 및 필터에 포함할 수 있는 필드를 지정합니다. 대시보드 작성자는 특정 필드만 필터링하도록 허용하여 데이터에 액세스 를 제한할 수 있습니다. 기본값 필드는 허용되지 않으므로 하나 이상의 필드 를 명시적으로 허용할 때까지 대시보드 를 필터링할 수 없습니다.

필터링 가능한 필드를 정의하려면 다음을 수행합니다.

  1. 원하는 대시보드 에 대해 다음을 클릭합니다. 버튼을 클릭하고 드롭다운에서 Embed 를 선택합니다.

  2. Allowed filter fields 섹션에서 다음을 클릭합니다. 버튼을 클릭합니다.

    참고

    이 옵션은 인증되지 않음 또는 인증 된 임베딩 액세스를 이미 활성화한 경우에만 표시됩니다.

    대시보드 뷰어가 다음 기준으로 데이터를 필터링할 수 있는 필드를 지정할 수 있습니다.

    • 드롭다운을 사용하여 필드 선택

    • 드롭다운에 나열되지 않은 필드를 추가하기 위해 수동으로 값을 입력하는 경우

    • 선택 Allow all fields in the data source used in this dashboard

  3. 원하는 필드를 모두 선택했으면 드롭다운 아래의 Save 를 클릭합니다.

대시보드를 렌더링하는 대시보드 뷰어 및 애플리케이션은 이제 지정된 필드를 기반으로 하는 필터를 사용하여 원본 대시보드 데이터의 하위 집합을 표시할 수 있습니다. 뷰어가 허용된 필터 필드 목록에 포함되지 않은 필드에 필터를 사용하려고 하면 Atlas Charts에서 오류를 반환합니다.

내장된 문서가 값인 Allowed filter fields 목록에 필드를 추가하는 경우 허용하려는 각 개별 하위 필드도 지정해야 합니다.

예시

다음 문서를 살펴보세요.

{
"name": "Alice",
"favorites" :
{
"color": "green",
"animal": "turtle",
"season": "autumn"
}
}

허용된 필드 목록에 favorites 필드만 추가하는 경우 최종 사용자가 favorites 의 하위 필드를 필터링할 수 있는 권한을 부여하지 않습니다 . 대신 favorites.color, favorites.animal 또는 favorites.season 를 지정하여 목록에 하나 이상의 하위 필드를 개별적으로 추가할 수 있습니다.

임베딩된 차트 및 많은 수의 컬렉션이 있는 대시보드에 사전 필터를 사용합니다. 사전 필터는 포함된 차트 파이프라인 의 초기 단계에서 실행 되며 다음과 같은 결과를 얻을 수 있습니다.

  • 데이터를 조기에 필터링하여 쿼리 실행 시간 단축

  • 보기 후 쿼리 실행 전에 필터를 적용하고 애그리게이션이 포함된 쿼리에 필터를 적용합니다.

사전 필터는 필터와 정확히 동일하게 작동하며 동일한 구문을 사용합니다. 유일한 차이점은 뷰 이후와 쿼리 및 필터가 시작되기 전에 실행 된다는 것입니다. 파이프라인 세그먼트의 순서에 학습 보려면 집계 파이프라인 을 참조하세요.

iframe에 포함된 대시보드에 지정된 MQL 필터와 일치하는 데이터만 표시하려면 filter 쿼리 매개변수를 사용합니다.

Unauthenticated 대시보드 에서는 filter 쿼리 매개변수만 사용할 수 있습니다. 인증되지 않은 대시보드의 경우 대시보드 작성자 는 임베딩 애플리케이션 코드로 설정하다 한 필터에 포함하거나 대시보드 뷰어가 추가할 수 있는 필드를 지정합니다. 필터링 가능한 필드를 지정하는 방법을 학습 보려면 필터링 가능한 필드 지정을 참조하세요.

필터에 사용된 필드가 필터링 가능한 허용 필드 목록에있는 경우 MQL 문서를 filter 쿼리 매개변수로 지정할 수 있습니다.

필터는 $match 쿼리에 사용된 형식과 일치해야 하며 다음 중 하나여야 합니다.

  • 최상위 쿼리

    예시

    { "quantity": { $gte: 20 } }
  • 또는 부울 표현식 내에서 ( $and, $nor, $or )

    예시

    { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] }

참고

필터 매개변수의 특수 문자는 URL 인코딩해야 합니다.

다음 iframe src URL은 가 이상인 문서만 표시하는 대시보드를 렌더링합니다.imdb.rating 8

https://charts.mongodb.com/charts-atlasproject1-piocy/embed/dashboards?
id=93584ddb-1115-4a12-afd9-5129e47bbb0d&
filter={"imdb.rating":%20{$gte:%208}}

URL은 {"imdb.rating":%20{$gte:%208}} 의 인코딩된 filter 매개변수를 사용합니다. 디코딩된 이 필터는 다음과 같습니다.

{"imdb.rating": {$gte: 8}}

preFilter 옵션을 사용하여 내장된 대시보드 에 사전 필터 를 추가할 수 있습니다. 사전 필터링을 사용하면 대시보드 작성자가 쿼리 를 실행하기 전에 필터하다 를 실행 수 있습니다.

Embed 모달에서 사전 필터에 포함할 필드를 지정해야 합니다. Embed 모달에는 필터링을 허용할 수 있는 필드의 드롭다운 메뉴가 포함되어 있습니다.

다음은 preFilter 옵션을 사용하여 오스트레일리아의 문서만 나타냅니다.

createDashboard({
baseUrl: '<your-base-url>',
dashboardId: '<your-chart-id>',
width: 500,
height: 500,
preFilter: { "address.country": "Australia" }
})

filter 옵션을 사용하여 내장된 대시보드에 필터 를 추가할 수 있습니다. 필터링을 사용하면 대시보드 작성자가 지정된 MQL 필터와 일치하는 내장된 대시보드의 데이터만 표시할 수 있습니다.

Embed 모달에서 필터하다 에 포함할 필드를 지정해야 합니다. Embed 모달에는 필터링을 허용할 수 있는 필드의 드롭다운 메뉴가 포함되어 있습니다.

다음은 filter 옵션을 사용하여 total 필드가 100 보다 큰 문서만 나타냅니다.

createDashboard({
baseUrl: '<your-base-url>',
dashboardId: '<your-dashboard-id>',
width: 500,
height: 500,
filter: { "total": { "$gt": 100 } }
})

Authenticated 액세스가 필요한 대시보드를 포함하는 경우 Injected function 설정을 사용하여 대시보드를 보는 각 사용자에게 특정한 MongoDB 필터 문서를 삽입할 수 있습니다. 이 함수는 context.token 을(를) 통해 Embedding 인증 제공자의 토큰에 액세스할 수 있으며 토큰을 기반으로 대시보드 데이터를 필터링할 수 있습니다.

이 필터는 내장된 대시보드의 뷰어가 자신의 데이터만 볼 수 있도록 하므로, 잠재적으로 민감한 정보가 포함된 대시보드를 포함할 때 유용합니다.

각 사용자에게 특정한 필터를 삽입하려면 Embed 대화 상자의 Authenticated 탭에서 Injected function`setting to :guilabel:`On 를 설정합니다. 함수를 지정하고 Save 을 클릭합니다.

예시

다음 필터 함수는 문서의 ownerId 필드가 임베딩 인증 제공자의 토큰의 sub 필드 값과 일치하는 데이터만 렌더링합니다.

function getFilter(context) {
return { ownerId: context.token.sub };
}

돌아가기

Iframe 스타일 및 테마 구성

이 페이지의 내용