removeQuerySettings
정의
버전 8.0에 추가 되었습니다.
이전에 setQuerySettings
로 추가한 쿼리 설정을 삭제합니다.
쿼리 설정을 삭제 하려면 removeQuerySettings
에 쿼리 형태 해시 string 또는 쿼리 형태 형태를 제공해야 합니다.
해시 string 또는 쿼리 형태 를 찾으려면 집계 파이프라인 에서 $querySettings
단계를 사용할 수 있습니다. 해시 string 의 이름은 $querySettings
출력에서 queryShapeHash
입니다.
removeQuerySettings
에 쿼리 형태 를 제공하는 경우 삭제 기존 쿼리 설정 형태의 필드를 포함합니다. 필드 값이 일치하지 않아도 됩니다. 예를 예시 find x=1
에 대한 기존 쿼리 설정이 있고 removeQuerySettings
에 find x=100
를 제공하는 경우 removeQuerySettings
는 find x=1
에 대한 쿼리 설정을 삭제합니다.
쿼리 형태에 대한 자세한 내용은 쿼리 형태를 참조하세요 .
구문
다음 구문 사양 중 하나를 사용하여 쿼리 설정을 삭제 수 있습니다.
쿼리 형태 해시 string제공
다음 구문에서는 removeQuerySettings
에 쿼리 형태 해시 string 을 제공합니다.
db.adminCommand( { removeQuerySettings: <string> // Provide an existing query shape hash string } )
쿼리 형태 제공
다음 구문에서는 다음을 제공합니다.
find
,distinct
또는aggregate
명령과 동일한 필드입니다.removeQuerySettings
에 포함할 수 있는 필드에 대한 명령은 페이지의 구문 섹션을 참조하세요.원래 명령과 연결된 데이터베이스 이름을 지정하는
$db
필드 입니다.
db.adminCommand( { removeQuerySettings: { <fields>, // Provide fields for // find, distinct, or aggregate command $db: <string> // Provide a database name } } )
명령 필드
명령은 이 필드 를 사용합니다.
예시
다음 예제에서는 컬렉션 을 만들고, 쿼리 설정을 추가하고, 설정을 삭제 합니다.
예시 컬렉션 및 인덱스 만들기
실행:
// Create pizzaOrders collection db.pizzaOrders.insertMany( [ { _id: 0, type: "pepperoni", totalNumber: 5, orderDate: new Date( "2024-01-15T12:00:00Z" ) }, { _id: 1, type: "cheese", totalNumber: 15, orderDate: new Date( "2024-01-23T11:12:32Z" ) }, { _id: 2, type: "vegan", totalNumber: 20, orderDate: new Date( "2024-03-20T10:01:12Z" ) } ] ) // Create ascending index on orderDate field db.pizzaOrders.createIndex( { orderDate: 1 } )
인덱스 의 기본값 이름은 orderDate_1
입니다.
쿼리 설정 추가
다음 setQuerySettings
예시 에서는 쿼리 설정을 추가합니다.
db.adminCommand( { setQuerySettings: { find: "pizzaOrders", filter: { orderDate: { $gt: ISODate( "2024-01-20T00:00:00Z" ) } }, sort: { totalNumber: 1 }, $db: "test" }, settings: { indexHints: { ns: { db: "test", coll: "pizzaOrders" }, allowedIndexes: [ "orderDate_1" ] }, queryFramework: "classic" } } )
쿼리 설정 반환
다음 예시 에서는 $querySettings
를 사용하여 쿼리 설정을 반환합니다.
db.aggregate( [ { $querySettings: {} } ] )
삭제 쿼리 설정을 찾으려면 이 출력에서 queryShapeHash
string 을 사용합니다.
[ { queryShapeHash: 'F42757F1AEB68B4C5A6DE6182B29B01947C829C926BCC01226BDA4DDE799766C', settings: { indexHints: { ns: { db: 'test', coll: 'pizzaOrders' }, allowedIndexes: [ 'orderDate_1' ] }, queryFramework: 'classic' }, representativeQuery: { find: 'pizzaOrders', filter: { orderDate: { '$gt': ISODate('2024-01-20T00:00:00.000Z') } }, sort: { totalNumber: 1 }, '$db': 'test' } } ]
쿼리 설정 삭제
다음 예시 에서는 removeQuerySettings
을 사용하여 이전 출력에서 queryShapeHash
을 사용하여 식별된 쿼리 설정을 삭제 합니다.
db.adminCommand( { removeQuerySettings: "F42757F1AEB68B4C5A6DE6182B29B01947C829C926BCC01226BDA4DDE799766C" } )
쿼리 형태 를 사용하여 쿼리 설정을 삭제 수도 있습니다. 예를 예시 다음과 같습니다.
db.adminCommand( { removeQuerySettings: { find: "pizzaOrders", filter: { orderDate: { $gt: ISODate( "2023-01-20T00:00:00Z" ) } }, sort: { totalNumber: 1 }, $db: "test" } } )