Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

removeQuerySettings (comando de base de datos)

removeQuerySettings

Nuevo en la versión 8.0.

Elimina la configuración de query agregada anteriormente con setQuerySettings.

Para borrar la configuración de query, debes proporcionar un hash string de forma del query o una forma del query para removeQuerySettings.

Para encontrar una hash string o una forma del query, puedes utilizar una etapa $querySettings en una pipeline de agregación. La cadena string se denomina queryShapeHash en la salida $querySettings.

Si proporciona una forma del query a removeQuerySettings, incluye los campos para borrar la forma de ajustes del query existente. Los valores de los campos no tienen que coincidir. Por ejemplo, si tienes configuraciones de consultas existentes para find x=1 y proporcionas find x=100 a removeQuerySettings, removeQuerySettings borra las configuraciones de consultas para find x=1.

Para obtener más información sobre los formatos de consulta, consulta Formatos de consulta.

Puede borrar la configuración de la query utilizando cualquiera de las siguientes especificaciones de sintaxis.

En la siguiente sintaxis, debes proporcionar una string hash de la forma del query en removeQuerySettings:

db.adminCommand( {
removeQuerySettings: <string> // Provide an existing query shape hash string
} )

En la siguiente sintaxis, usted proporciona:

  • Los mismos campos que un comando find, distinct o aggregate. Consulta las secciones de sintaxis en las páginas de esos comandos para ver los campos que puedes incluir en removeQuerySettings.

  • Un campo $db que especifica el nombre de la base de datos asociado al comando original.

db.adminCommand( {
removeQuerySettings: {
<fields>, // Provide fields for
// find, distinct, or aggregate command
$db: <string> // Provide a database name
}
} )

El comando toma este campo:

Campo
Tipo
Necesidad
Descripción

removeQuerySettings

Documento o string

Requerido

Puedes proporcionar cualquiera de las siguientes opciones:

  • Los mismos campos que los de un comando find, distinct o aggregate y un campo $db con la base de datos asociada al comando original.

  • Una string hash de forma del query existente.

Los siguientes ejemplos crean una colección, agregan configuraciones de query y borran las configuraciones:

1

Ejecuta:

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

El índice tiene el nombre por defecto orderDate_1.

2

El siguiente setQuerySettings ejemplo agrega configuraciones 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"
}
} )
3

El siguiente ejemplo utiliza $querySettings para devolver la configuración de la query:

db.aggregate( [
{ $querySettings: {} }
] )

Para localizar la configuración de consulta a eliminar, usa la string queryShapeHash en esta salida:

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

El siguiente ejemplo usa removeQuerySettings para borrar la configuración de la query identificada usando queryShapeHash de la salida anterior:

db.adminCommand( {
removeQuerySettings: "F42757F1AEB68B4C5A6DE6182B29B01947C829C926BCC01226BDA4DDE799766C"
} )

También puedes eliminar la configuración de query usando una forma del query. Por ejemplo:

db.adminCommand( {
removeQuerySettings: {
find: "pizzaOrders",
filter: {
orderDate: { $gt: ISODate( "2023-01-20T00:00:00Z" ) }
},
sort: {
totalNumber: 1
},
$db: "test"
}
} )

Volver

reIndex

En esta página