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 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 query existentes para find x=1
e fornecer find x=100
a removeQuerySettings
, removeQuerySettings
excluirá as configurações de query 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 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 as 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" } } )