planCacheClearFilters
정의
planCacheClearFilters
컬렉션 에서 인덱스 필터 를 제거합니다. 인덱스 필터는 서버 프로세스 기간 동안만 존재하며 종료 후에는 유지되지 않지만
planCacheClearFilters
명령을 사용하여 기존 인덱스 필터를 지울 수도 있습니다.특정 인덱스 필터하다 를 제거 하기 위한 계획 캐시 쿼리 형태 를 지정합니다. 컬렉션 의 모든 인덱스 필터를 지우려면 계획 캐시 쿼리 형태 를 생략합니다.
쿼리 설정
MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.
쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings
를 참조하세요.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { planCacheClearFilters: <collection>, query: <query pattern>, sort: <sort specification>, projection: <projection specification>, collation: { <collation> }, comment: <any> } )
명령 필드
명령에는 다음과 같은 필드가 있습니다.
필드 | 유형 | 설명 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| 문자열 | 인덱스 필터를 제거할 collection의 이름입니다. | ||||||||||
| 문서 | 선택 사항. 제거할 인덱스 필터에 대한 쿼리 조건자입니다. 생략하면 명령은 collection에서 모든 인덱스 필터를 지웁니다.
| ||||||||||
| 문서 | 선택 사항. 제거할 인덱스 필터의 정렬입니다(있는 경우). | ||||||||||
| 문서 | 선택 사항. 제거할 인덱스 필터의 프로젝션(있는 경우)입니다. | ||||||||||
| 문서 | 작업에 사용할 데이터 정렬을 지정합니다. 데이터 정렬을 사용하면 대소문자 및 악센트 표시 규칙과 같은 문자열 비교에 대한 언어별 규칙을 지정할 수 있습니다. 데이터 정렬 옵션의 구문은 다음과 같습니다:
데이터 정렬을 지정할 때 데이터 정렬이 지정되지 않았지만 컬렉션에 기본 데이터 정렬이 있는 경우( 컬렉션 또는 연산에 대한 데이터 정렬이 지정되지 않은 경우, MongoDB는 이전 버전에서 문자열 비교에 사용된 간단한 이진 비교를 사용합니다. 한 연산에 대해 여러 데이터 정렬을 지정할 수 없습니다. 예를 들어 필드별로 서로 다른 데이터 정렬을 지정할 수 없으며 정렬과 함께 찾기를 수행하는 경우 찾기 와 정렬에서 각각 다른 데이터 정렬을 사용하는 것은 허용되지 않습니다. MongoDB 6.0부터 인덱스 필터는 이전에 명령을 MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다. 쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 | ||||||||||
| any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
필요한 액세스 권한
사용자는 planCacheIndexFilter
조치를 포함하는 액세스 권한이 있어야 합니다.
예시
collection에서 특정 인덱스 필터 지우기
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" } } )
collection의 모든 인덱스 필터 지우기
다음 예에서는 orders
collection의 모든 인덱스 필터를 지웁니다.
db.runCommand( { planCacheClearFilters: "orders" } )
쿼리 및 데이터 정렬이 포함된 인덱스 필터 지우기
다음 예제에서는 Movie
en_US
에 대한 쿼리와 orders
collection에 대한 데이터 정렬 가 포함된 인덱스 필터를 지웁니다.
db.runCommand( { planCacheClearFilters: "orders", query: { item: "Movie" }, collation: { locale: "en_US" } } )