Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 las formas de consulta, consulte Formas de consulta.

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

En la siguiente sintaxis, proporciona una cadena hash de forma de consulta 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 en un find distinctcomando, o aggregate $db y un campo con la base de datos asociada con el comando original.

  • Una string hash de forma del query existente.

Los siguientes ejemplos crean una colección, agregan configuraciones de consulta y eliminan 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 predeterminado orderDate_1.

2

El siguiente ejemplo setQuerySettings agrega configuraciones de consulta:

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 que desea eliminar, utilice la cadena 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