removeQuerySettings
Definição
Novidades na versão 8.0.
Exclui configurações de query adicionadas anteriormente com setQuerySettings
.
Para excluir as configurações de query, você deve fornecer uma string de hash de forma de query ou uma forma de query para removeQuerySettings
.
Para localizar uma string de hash ou forma de query, você pode usar um estágio $querySettings
em um pipeline de agregação. A string de hash é denominada queryShapeHash
na saída $querySettings
.
Se você fornecer uma forma de query para removeQuerySettings
, inclua os campos da forma de configurações de query existente a ser excluída. Os valores de campo não precisam corresponder. Por exemplo, se você tiver configurações de consulta existentes para find x=1
e fornecer find x=100
a removeQuerySettings
, removeQuerySettings
excluirá as configurações de consulta para find x=1
.
Para obter mais informações sobre formas de query, consulte Formas de query.
Sintaxe
Você pode excluir configurações de query utilizando uma das seguintes especificações de sintaxe.
Forneça uma string de hash da forma de query
Na seguinte sintaxe, você fornece uma string de hash de forma de query no removeQuerySettings
:
db.adminCommand( { removeQuerySettings: <string> // Provide an existing query shape hash string } )
Fornecer um formato de query
Na seguinte sintaxe, você fornece:
Os mesmos campos que um comando
find
,distinct
ouaggregate
. Consulte as seções de sintaxe nas páginas dos comandos para os campos que você pode incluir emremoveQuerySettings
.Um campo
$db
que especifica o nome do banco de dados associado ao comando original.
db.adminCommand( { removeQuerySettings: { <fields>, // Provide fields for // find, distinct, or aggregate command $db: <string> // Provide a database name } } )
Campos de comando
O comando usa este campo:
Exemplos
Os exemplos a seguir criam uma coleção, adicionam configurações de query e excluem as configurações:
Criar a coleção e o índice de exemplo
Executar:
// 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 } )
O índice tem o nome padrão orderDate_1
.
Adicionar as configurações de query
O exemplo do setQuerySettings
a seguir adiciona configurações de query:
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" } } )
Retornar as configurações de query
O exemplo a seguir utiliza $querySettings
para retornar as configurações de query:
db.aggregate( [ { $querySettings: {} } ] )
Para localizar as configurações de query a serem excluídas, use a string queryShapeHash
nesta saída:
[ { 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' } } ]
Excluir as configurações de query
O exemplo seguinte utiliza removeQuerySettings
para excluir as configurações de consulta identificadas utilizando queryShapeHash
a partir da saída anterior:
db.adminCommand( { removeQuerySettings: "F42757F1AEB68B4C5A6DE6182B29B01947C829C926BCC01226BDA4DDE799766C" } )
Você também pode excluir configurações de query usando uma forma de query. Por exemplo:
db.adminCommand( { removeQuerySettings: { find: "pizzaOrders", filter: { orderDate: { $gt: ISODate( "2023-01-20T00:00:00Z" ) } }, sort: { totalNumber: 1 }, $db: "test" } } )