deleteQuerySettings
定義
バージョン8.0の新機能。
以前に setQuerySettings
で追加されたクエリ設定を削除します。
クエリ設定を削除するには、クエリシェイプハッシュstringまたは クエリシェイプ のいずれかを removeQuerySettings
に指定する必要があります。
ハッシュstringまたはクエリシェイプを検索するには、集計パイプラインで$querySettings
ステージを使用できます。 ハッシュstringは、$querySettings
出力では queryShapeHash
という名前を付けます。
removeQuerySettings
にクエリシェイプを指定する場合は、削除する既存のクエリ設定シェイプのフィールドを含めます。 フィールド値は一致する必要はありません。 たとえば、 find x=1
の既存のクエリ設定があり、 removeQuerySettings
にfind x=100
を指定した場合、 removeQuerySettings
はfind x=1
のクエリ設定を削除します。
クエリシェイプの詳細については、「クエリシェイプ 」を参照してください。
構文
次のいずれかの構文指定を使用してクエリ設定を削除できます。
クエリシェイプハッシュstringの指定
次の構文では、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 } } )
コマンドフィールド
コマンドは、次のフィールドがあります。
例
次の例では、コレクションの作成、クエリ設定の追加、設定の削除を行います。
サンプル コレクションとインデックスを作成する
実行:
// 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
です。
クエリ設定を追加する
次の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" } } )
クエリ設定を返す
次の例では、 $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' } } ]
クエリ設定を削除する
次の例では、 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" } } )