Docs Menu
Docs Home
/
Atlas Charts
/ /

임베딩된 차트 필터링

이 페이지의 내용

  • 필터링 가능한 필드 지정
  • 내장된 문서가 있는 필드에 필터링 가능한 하위 필드 지정
  • iframe에 임베딩된 Charts 에서 데이터 사전 필터링
  • 사전 필터 예시
  • iframe에 임베딩된 Charts에서 데이터 필터링
  • 필터 구문
  • SDK로 임베딩된 Charts 에서 데이터 사전 필터링
  • SDK로 임베딩된 Charts의 데이터 필터링
  • 사용자별 필터 삽입

다음을 추가하여 포함된 차트를 사용자 지정할 수 있습니다.

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

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

사전 필터와 필터를 모두 사용하는 것은 선택 사항인 경우에도 동일한 대시보드 에서 사용할 수 있습니다. 지정된 경우 사전 필터는 항상 차트 뷰 이후, 대시보드의 쿼리 및 필터 이전에 실행 됩니다.

참고

대시보드에서 Atlas Charts를 임베드하려면 데이터 소스에서 임베딩 옵션을 구성해야 합니다. 지침은 다음을 참조하세요.

  • 웹 애플리케이션에 차트 임베딩

임베딩된 Atlas Charts와 Atlas Charts를 임베딩된 대시보드에서 필터링할 수 있습니다.

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

사전 필터 및 필터에 대해 필터링 가능한 필드를 정의하려면 다음을 수행합니다.

  1. 필터링 가능한 필드를 정의하려는 차트가 포함된 대시보드 로 이동합니다.

  2. 원하는 차트에 대해 다음을 클릭합니다. 버튼을 클릭하고 드롭다운에서 Embed Chart 를 선택합니다.

  3. Allowed filter fields 섹션에서 드롭다운을 사용하여 차트 뷰어가 차트에서 필터 데이터를 사용할 수 있는 필드를 선택합니다. 또한 값을 수동으로 입력하여 드롭다운에 나열되지 않은 필드를 추가할 수도 있습니다.

    참고

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

    차트 뷰어가 데이터를 사전 필터링하거나 필터하다 할 수 있는 필드를 지정하려면 다음을 수행합니다.

    • 드롭다운을 사용하여 필드를 선택합니다.

    • 드롭다운에 나열되지 않은 필드를 추가하려면 값을 수동으로 입력합니다.

    • Allow all fields in the data source used in this chart0}을 선택합니다.

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

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

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

예시

다음 문서를 살펴보세요.

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

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

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

  • 데이터를 조기에 필터링하여 쿼리 실행 시간을 줄입니다.

  • 애그리게이션이 포함된 차트 쿼리의 경우 쿼리 를 실행하기 전에 필터를 적용합니다.

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

iframe에 포함된 차트 의 경우 차트 쿼리 실행 이 시작되기 전에 preFilter 쿼리 매개변수를 사용하여 데이터를 필터하다 합니다.

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

다음 예시 에서는 차트 보기, 쿼리 , 필터 및 사전 필터가 함께 작동하는 방식을 보여 줍니다.

다음 시나리오를 생각해 보겠습니다.

  • Charts 보기에는 다음이 포함됩니다.

    [ { $project: { accommodates: 1, "bedrooms": 1, "address.country": 1 } } ]
  • 쿼리 표시줄에는 다음이 포함됩니다.

    [ { $match: { accommodates: { $gte: 3 } } }, { $project: { address: 0 } } ]
  • 내장된 차트 의 필터하다 에는 다음이 포함됩니다.

    { "bedrooms": { $lte: 3 } }
  • 내장된 차트 의 사전 필터에는 다음이 포함됩니다.

    { "address.country": "Australia" }

이전 예시 에서는 차트의 쿼리 가 실행 되기 전에 오스트레일리아에 있는 아파트만 찾도록 사전 필터가 적용됩니다. 그런 다음 차트의 쿼리 가 실행되어 3명 이상을 수용할 수 있는 모든 아파트를 식별합니다.

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

UnauthenticatedVerified Signature 차트 모두에서 filter 쿼리 매개변수를 사용할 수 있습니다. 필터링 동작은 각 인증 설정에 따라 다릅니다.

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

  • Atlas Charts가 필요한 서명이 확인된 경우, 모든 문서 필드를 필터링할 수 있지만, 서버 측 코드에서 필터를 생성하고 서명된 페이로드의 일부로 해당 필터를 포함해야 합니다.

해당 탭을 선택하면 Unauthenticated 차트 및 Verified Signature 차트에서 데이터를 필터링하는 방법의 예를 볼 수 있습니다.

필터에 사용된 필드가 필터링 가능한 허용 필드 목록에있는 경우 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/charts?
id=93584ddb-1115-4a12-afd9-5129e47bbb0d&
filter={"imdb.rating":%20{$gte:%208}}&
autoRefresh=60

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

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

MQL 문서 를 filter 쿼리 매개변수로 지정합니다.

필터하다 는 다음 예제에 표시된 대로 $match 쿼리 에 사용된 형식과 일치해야 합니다.

예시

{ "quantity": { $gte: 20 } }

예시

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

확인된 서명에서 필터를 사용할 때 MQL 쿼리에는 서버 측 코드가 서명을 계산하기 전에 URL 인코딩되어야 하는 문자가 포함됩니다. Charts 는 서명을 확인할 때 JavaScript 인코딩 URIComponent{ 를 사용하여 필터하다 를 다시 URL 인코딩합니다. 함수입니다. 필터하다 를 인코딩하려면 동일한 인코딩 알고리즘 을 사용해야 합니다.

중요

필터하다 의 공백을 + 또는 원시 공백이 아닌 %20 로 인코딩해야 합니다.

다양한 서버 측 프로그래밍 언어를 사용하여 필터하다 를 올바르게 인코딩하는 방법을 확인하려면 MQL Atlas Charts 임베딩 예제 를 Github 참조하세요. 에서 .

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

https://charts.mongodb.com/charts-atlasproject1-piocy/embed/charts?
id=93584ddb-1115-4a12-afd9-5129e47bbb0d&
timestamp=1564156636&
expires-in=300&
filter=%7B%22imdb.rating%22%3A%20%7B%24gte%3A%208%7D%7D&
autoRefresh=60&
signature=8e0d92b33934c928f6c6974e2f0102ace77f56d851cb0d33893e84c359ab1043

URL은 %7B%22imdb.rating%22%3A%20%7B%24gte%3A%208%7D%7D 의 인코딩된 filter 매개변수를 사용합니다. 디코딩된 이 필터는 다음과 같습니다.

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

preFilter 옵션을 사용하여 임베딩된 차트 에 사전 필터 를 추가할 수 있습니다. 사전 필터링을 사용하면 차트 작성자가 차트 뷰 후, 차트 쿼리 실행 및 차트 필터 전에 필터하다 를 실행 수 있습니다.

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

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

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

filter 옵션을 사용하여 임베딩된 차트 에 필터하다 를 추가할 수 있습니다. 필터링을 사용하면 차트 작성자가 지정된 MQL 필터하다 와 일치하는 포함된 차트 의 데이터만 표시할 수 있습니다.

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

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

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

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

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

참고

Atlas App Services 인증 제공자 를 사용하는 경우 context.token 에는 필터하다 할 App Services 사용자 객체 가 포함되어 있습니다. 예를 예시 App Services 사용자에 대해 사용자 지정 사용자 데이터 를 활성화 하면 context.token.custom_data 에서 사용자 객체 를 사용할 수 있습니다.

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

예시

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

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

돌아가기

iframe