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

removeQuerySettings

이 페이지의 내용

  • 정의
  • 구문
  • 명령 필드
  • 예제
  • 자세히 알아보기
removeQuerySettings

버전 8.0에 추가 되었습니다.

이전에 setQuerySettings로 추가한 쿼리 설정을 삭제합니다.

쿼리 설정을 삭제하려면 쿼리 형태 해시 문자열 또는 쿼리 형태를 removeQuerySettings 에 제공해야 합니다.

해시 문자열 또는 쿼리 형태를 찾으려면 집계 파이프라인에서 $querySettings 단계를 사용할 수 있습니다. 해시 문자열의 이름은 $querySettings 출력에서 queryShapeHash 입니다.

removeQuerySettings 에 쿼리 형태를 제공하는 경우 삭제할 기존 쿼리 설정 형태의 필드를 포함합니다. 필드 값이 일치하지 않아도 됩니다. 예를 들어 find x=1 에 대한 기존 쿼리 설정이 있고 removeQuerySettingsfind x=100 를 제공하는 경우 removeQuerySettingsfind x=1 에 대한 쿼리 설정을 삭제합니다.

쿼리 형태에 대한 자세한 내용은 쿼리 형태를 참조하세요 .

다음 구문 사양 중 하나를 사용하여 쿼리 설정을 삭제할 수 있습니다.

다음 구문에서는 removeQuerySettings 에 쿼리 형태 해시 문자열을 제공합니다.

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
}
} )

이 명령은 이 필드를 사용합니다.

필드
유형
필요성
설명
removeQuerySettings
문서 또는 문자열
필수 사항

다음 중 하나를 제공할 수 있습니다.

  • find, distinct 또는 aggregate 명령의 필드와 동일한 필드 및 원래 명령과 연결된 데이터베이스가 있는 $db 필드입니다.

  • 기존 쿼리 형태 해시 문자열입니다.

다음 예제에서는 컬렉션을 만들고, 쿼리 설정을 추가하고, 설정을 삭제합니다.

1

실행:

// 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 입니다.

2

다음 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"
}
} )
3

다음 예제에서는 $querySettings 를 사용하여 쿼리 설정을 반환합니다.

db.aggregate( [
{ $querySettings: {} }
] )

삭제할 쿼리 설정을 찾으려면 이 출력에서 queryShapeHash 문자열을 사용합니다.

[
{
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'
}
}
]
4

다음 예제에서는 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"
}
} )

돌아가기

reIndex