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

removeQuerySettings

이 페이지의 내용

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

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

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

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

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

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

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

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

다음 구문에서는 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
}
} )

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

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

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

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

  • 기존 쿼리 형태 해시 string 입니다.

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

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 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'
}
}
]
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