Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

planCacheClearFilters

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 필요한 액세스 권한
  • 예시
planCacheClearFilters

컬렉션 에서 인덱스 필터 를 제거합니다. 인덱스 필터는 서버 프로세스 기간 동안만 존재하며 종료 후에는 유지되지 않지만 planCacheClearFilters 명령을 사용하여 기존 인덱스 필터를 지울 수도 있습니다.

특정 인덱스 필터하다 를 제거 하기 위한 계획 캐시 쿼리 형태 를 지정합니다. 컬렉션 의 모든 인덱스 필터를 지우려면 계획 캐시 쿼리 형태 를 생략합니다.

MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.

쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings 를 참조하세요.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

중요

이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

명령은 다음과 같은 구문을 가집니다:

db.runCommand(
{
planCacheClearFilters: <collection>,
query: <query pattern>,
sort: <sort specification>,
projection: <projection specification>,
collation: { <collation> },
comment: <any>
}
)

명령에는 다음과 같은 필드가 있습니다.

필드
유형
설명
planCacheClearFilters
문자열
인덱스 필터를 제거할 collection의 이름입니다.
query
문서

선택 사항. 제거할 인덱스 필터에 대한 쿼리 조건자입니다. 생략하면 명령은 collection에서 모든 인덱스 필터를 지웁니다.

query 술어의 값은 다음을 수행하지 않습니다.

sort
문서
선택 사항. 제거할 인덱스 필터의 정렬입니다(있는 경우).
projection
문서
선택 사항. 제거할 인덱스 필터의 프로젝션(있는 경우)입니다.
collation
문서

작업에 사용할 데이터 정렬을 지정합니다.

데이터 정렬을 사용하면 대소문자 및 악센트 표시 규칙과 같은 문자열 비교에 대한 언어별 규칙을 지정할 수 있습니다.

데이터 정렬 옵션의 구문은 다음과 같습니다:

collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

데이터 정렬을 지정할 때 locale 필드는 필수이고, 다른 데이터 정렬 필드는 모두 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.

데이터 정렬이 지정되지 않았지만 컬렉션에 기본 데이터 정렬이 있는 경우( db.createCollection() 참조), 작업은 컬렉션에 지정된 데이터 정렬을 사용합니다.

컬렉션 또는 연산에 대한 데이터 정렬이 지정되지 않은 경우, MongoDB는 이전 버전에서 문자열 비교에 사용된 간단한 이진 비교를 사용합니다.

한 연산에 대해 여러 데이터 정렬을 지정할 수 없습니다. 예를 들어 필드별로 서로 다른 데이터 정렬을 지정할 수 없으며 정렬과 함께 찾기를 수행하는 경우 찾기 와 정렬에서 각각 다른 데이터 정렬을 사용하는 것은 허용되지 않습니다.

MongoDB 6.0부터 인덱스 필터는 이전에 명령을 planCacheSetFilter 사용하여 설정한 데이터 정렬을 사용합니다.

MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.

쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings 를 참조하세요.

comment
any

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

사용자는 planCacheIndexFilter 조치를 포함하는 액세스 권한이 있어야 합니다.

orders collection에는 다음과 같은 인덱스 필터가 포함되어 있습니다.

{
"query" : { "status" : "A" },
"sort" : { "ord_date" : -1 },
"projection" : { },
"indexes" : [ { "status" : 1, "cust_id" : 1 } ]
}
{
"query" : { "status" : "A" },
"sort" : { },
"projection" : { },
"indexes" : [ { "status" : 1, "cust_id" : 1 } ]
}
{
"query": { "item": "Movie" },
"collation": { locale: "en_US" },
"indexes": [ { "item": 1, "order_date": 1 , "quantity": 1 } ]
}

참고

MongoDB 6.0부터 인덱스 필터는 이전에 명령을 planCacheSetFilter 사용하여 설정한 데이터 정렬을 사용합니다.

MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.

쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings 를 참조하세요.

다음 명령은 두 번째 인덱스 필터만 제거합니다.

db.runCommand(
{
planCacheClearFilters: "orders",
query: { "status" : "A" }
}
)

query 조건자의 값은 계획 캐시 쿼리 형태 를 결정하는 데 중요하지 않으므로 다음 명령은 두 번째 인덱스 필터하다 도 제거 합니다.

db.runCommand(
{
planCacheClearFilters: "orders",
query: { "status" : "P" }
}
)

다음 예에서는 orders collection의 모든 인덱스 필터를 지웁니다.

db.runCommand(
{
planCacheClearFilters: "orders"
}
)

다음 예제에서는 Movie en_US 에 대한 쿼리와 orders collection에 대한 데이터 정렬 가 포함된 인덱스 필터를 지웁니다.

db.runCommand(
{
planCacheClearFilters: "orders",
query: { item: "Movie" },
collation: { locale: "en_US" }
}
)

다음도 참조하세요.

돌아가기

planCacheClear