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.
Compatibilidade
Esse comando está disponÃvel em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Esse comando não é suportado em clusters M0 e Flex. Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponÃvel, de uso gratuito e autogerenciada do MongoDB
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:
Um campo
$dbque 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", comment: "Index hint for orderDate_1 index to improve query performance" } } )
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', comment: 'Index hint for orderDate_1 index to improve query performance' }, 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" } } )