Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

$querySettings (aggregation)

項目一覧

  • 定義
  • 構文
  • コマンドフィールド
  • 詳細
$querySettings

バージョン8.0の新機能

以前に setQuerySettingsで追加されたクエリ設定を返します。 設定はクラスター全体に適用されます。 クラスターはシャットダウン後も設定を保持します。

複数のパイプライン ステージを使用する場合は、パイプラインの最初に$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_1totalNumber_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: { showDebugQueryShape: true }
} ] )

showDebugQueryShapetrueであるため、 debugQueryShapeドキュメントが出力に含まれます。 クエリ設定を見つけるには、 queryShapeHash識別子を使用します。 この出力では、 queryShapeHashdebugQueryShapeが強調表示されています。

[
{
queryShapeHash: 'AB8ECADEE8F0EB0F447A30744EB4813AE7E0BFEF523B0870CA10FCBC87F5D8F1',
settings: {
indexHints: [
{
ns: { db: 'test', coll: 'pizzaOrders' },
allowedIndexes: [ 'orderDate_1' ]
}
],
queryFramework: 'classic'
},
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 }
}
}
]

戻る

$project