정의
PlanCache.clearPlansByQuery( <query>, <projection>, <sort> )지정된 계획 캐시 쿼리 형태에 대해 캐시된 쿼리 계획을 지웁니다.
중요
Mongo쉬 방법
이 페이지에서는
mongosh메서드를 설명합니다. 이는 데이터베이스 명령 또는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.데이터베이스 명령에 대해서는
planCacheClear명령을 참조하십시오.MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.
이 메서드는 특정 컬렉션의
plan cache object에서만 사용할 수 있습니다. 즉, 다음과 같습니다.db.collection.getPlanCache().clearPlansByQuery( <query>, <projection>, <sort>, <collation> ) PlanCache.clearPlansByQuery()메서드는 다음 매개 변수를 허용합니다.Parameter유형설명query문서
계획 캐시 쿼리 형태 의 쿼리 조건자입니다. 필드 이름을 포함한 술어의 구조만이 형태에 중요합니다. 즉, 쿼리 조건자의 값이 중요하지 않습니다.
projection문서
선택 사항. 계획 캐시 쿼리 형태 와 관련된 프로젝션 입니다.
sort매개변수를 지정하는 경우 필수입니다.sort문서
선택 사항. 계획 캐시 쿼리 형태 와 관련된 정렬입니다.
collation문서
선택 사항입니다. 작업에 사용할 데이터 정렬을 지정합니다.
데이터 정렬을 사용하면 대소문자 및 악센트 표시 규칙과 같은 문자열 비교에 대한 언어별 규칙을 지정할 수 있습니다.
데이터 정렬 옵션의 구문은 다음과 같습니다:
collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } 데이터 정렬을 지정할 때
locale필드는 필수이고, 다른 데이터 정렬 필드는 모두 선택 사항입니다. 필드에 대한 설명은 데이터 정렬 문서를 참조하세요.데이터 정렬이 지정되지 않았지만 컬렉션에 기본 데이터 정렬이 있는 경우(
db.createCollection()참조), 작업은 컬렉션에 지정된 데이터 정렬을 사용합니다.컬렉션 또는 연산에 대한 데이터 정렬이 지정되지 않은 경우, MongoDB는 이전 버전에서 문자열 비교에 사용된 간단한 이진 비교를 사용합니다.
한 연산에 대해 여러 데이터 정렬을 지정할 수 없습니다. 예를 들어 필드별로 서로 다른 데이터 정렬을 지정할 수 없으며 정렬과 함께 찾기를 수행하는 경우 찾기 와 정렬에서 각각 다른 데이터 정렬을 사용하는 것은 허용되지 않습니다.
캐시된 쿼리 계획이 있는 쿼리 형태를 확인하려면 예제를 참조하세요.
MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.
쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings 를 참조하세요.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
필요한 액세스 권한
authorization(으)로 실행되는 시스템에서 사용자는 planCacheWrite 조치를 포함하는 액세스 권한이 있어야 합니다.
예시
컬렉션 orders 에 다음과 같은 계획 캐시 쿼리 형태 가 있는 경우
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "collation" : { locale : "fr" }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
경고
MongoDB 8.0부터 기존 queryHash 필드 planCacheShapeHash라는 새 필드 에 중복됩니다. 이전 MongoDB 버전을 사용하는 경우 queryHash 필드 만 표시됩니다. 향후 MongoDB 버전에서는 더 이상 사용되지 않는 queryHash 필드 제거 될 예정이며, 대신 planCacheShapeHash 필드 사용해야 합니다.
다음 작업은 형태에 대해 캐시된 쿼리 계획을 제거합니다.
db.orders.getPlanCache().clearPlansByQuery( { "qty" : { "$gt" : 10 } }, { }, { "ord_date" : 1 }, { locale: "fr" } )
팁
PlanCache.listQueryShapes()