Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

removeQuerySettings

Nesta página

  • Definição
  • Sintaxe
  • Campos de comando
  • Exemplos
  • Saiba mais
removeQuerySettings

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.

Você pode excluir configurações de query utilizando uma das seguintes especificações de sintaxe.

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
} )

Na seguinte sintaxe, você fornece:

  • Os mesmos campos que um comando find, distinct ou aggregate . Consulte as seções de sintaxe nas páginas dos comandos para os campos que você pode incluir em removeQuerySettings.

  • 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
}
} )

O comando usa este campo:

Campo
Tipo
necessidade
Descrição
removeQuerySettings
documento ou string
Obrigatório

Você pode fornecer:

  • Os mesmos campos que os de um comando find, distinct ou aggregate e um campo $db com o banco de dados associado ao comando original.

  • Uma string de hash de forma de query existente.

Os exemplos a seguir criam uma coleção, adicionam configurações de query e excluem as configurações:

1

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.

2

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"
}
} )
3

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'
}
}
]
4

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"
}
} )

Voltar

reIndex