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

deleteQuerySettings

項目一覧

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

バージョン8.0の新機能

以前に setQuerySettingsで追加されたクエリ設定を削除します。

クエリ設定を削除するには、クエリシェイプハッシュstringまたは クエリシェイプ のいずれかを removeQuerySettings に指定する必要があります。

ハッシュ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
} )

次の構文で、次の値を指定します。

  • finddistinct 、またはaggregateコマンドと同じフィールド。 removeQuerySettingsに含めることができるフィールドのコマンドについては、 ページの構文セクションを参照してください。

  • 元のコマンドに関連付けられたデータベース名を指定する$dbフィールド。

db.adminCommand( {
removeQuerySettings: {
<fields>, // Provide fields for
// find, distinct, or aggregate command
$db: <string> // Provide a database name
}
} )

コマンドは、次のフィールドがあります。

フィールド
タイプ
必要性
説明
removeQuerySettings
ドキュメントまたは文字列
必須

次のいずれかを提供できます。

  • finddistinct 、または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