AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

$querySettings (집계 단계)

$querySettings

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

이전에 setQuerySettings 로 추가한 쿼리 설정을 반환합니다. 설정은 전체 클러스터 에 적용 됩니다. 클러스터 는 종료 후에도 설정을 유지합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

중요

This command is not supported in M0 and Flex clusters. For more information, see Unsupported Commands.

여러 파이프라인 단계를 사용하는 경우 파이프라인 라인에서 $querySettings 을 먼저 배치합니다.

db.aggregate( [
{ $querySettings: { showDebugQueryShape: <boolean> } },
// Add any additional pipeline stages after $querySettings
...
] )

$querySettings 는 이 필드를 사용합니다.

필드
유형
필요성
설명

showDebugQueryShape

부울

옵션

true 인 경우 $querySettings 는 쿼리 형태 출력의 디버깅 버전을 반환합니다. 다음 섹션에서 예시 를 볼 수 있습니다. 출력에 대한 자세한 내용은 쿼리 형태를 참조하세요.

기본값은 false입니다.

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

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 } )
// Create ascending index on totalNumber field
db.pizzaOrders.createIndex( { totalNumber: 1 } )

인덱스의 기본값 이름은 orderDate_1 및 totalNumber_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",
comment: "Index hint for orderDate_1 index to improve query performance"
}
} )

comment 필드 MongoDB 8.1 (및 8.0.4)부터 사용할 수 있습니다.

3

다음 예시 에서는 집계 파이프라인 의 $querySettings 단계를 사용하여 쿼리 설정을 반환합니다.

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

showDebugQueryShape 이(가) true 이므로 debugQueryShape 문서 가 출력에 포함됩니다. queryShapeHash 식별자를 사용하여 쿼리 설정을 찾을 수 있습니다. 이 출력에서는 queryShapeHash 및 debugQueryShape 가 강조 표시됩니다.

[
{
queryShapeHash: 'AB8ECADEE8F0EB0F447A30744EB4813AE7E0BFEF523B0870CA10FCBC87F5D8F1',
settings: {
indexHints: [
{
ns: { db: 'test', coll: 'pizzaOrders' },
allowedIndexes: [ 'orderDate_1' ]
}
],
queryFramework: 'classic',
comment: 'Index hint for orderDate_1 index to improve query performance'
},
representativeQuery: {
find: 'pizzaOrders',
filter: { orderDate: { '$gt': ISODate('2023-01-20T00:00:00.000Z') } },
sort: { totalNumber: 1 },
'$db': 'test'
},
debugQueryShape: {
cmdNs: { db: 'test', coll: 'pizzaOrders' },
command: 'find',
filter: { orderDate: { '$gt': '?date' } },
sort: { totalNumber: 1 }
}
}
]