Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$querySettings (etapa de agregación)

$querySettings

Nuevo en la versión 8.0.

Devuelve la configuración de la query previamente añadida con setQuerySettings. La configuración se aplica a todo el clúster. El clúster retiene la configuración después del apagado.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente administrado para implementaciones de MongoDB en la nube.

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Si utiliza múltiples etapas de pipeline, coloque $querySettings primero en el pipeline.

db.aggregate( [
{ $querySettings: { showDebugQueryShape: <boolean> } },
// Add any additional pipeline stages after $querySettings
...
] )

$querySettings toma este campo:

Campo
Tipo
Necesidad
Descripción

showDebugQueryShape

booleano

Opcional

Si true, $querySettings devuelve una versión de depuración de la salida de la forma del query. Verás un ejemplo en la siguiente sección. Para obtener detalles sobre la salida, consulta la forma del query.

El valor por defecto es false.

Los siguientes ejemplos crean una colección, añaden configuraciones de query y devuelven 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 } )
// Create ascending index on totalNumber field
db.pizzaOrders.createIndex( { totalNumber: 1 } )

Los índices tienen los nombres por defecto orderDate_1 y totalNumber_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"
}
} )

El campo comment está disponible a partir de MongoDB 8.0.4.

3

El siguiente ejemplo utiliza una etapa $querySettings en una pipeline de agregación para devolver configuraciones de queries:

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

Debido a que showDebugQueryShape es true, el documento debugQueryShape se incluye en la salida. Puede utilizar el identificador queryShapeHash para localizar la configuración de query. queryShapeHash y debugQueryShape están resaltados en este resultado:

[
{
queryShapeHash: 'AB8ECADEE8F0EB0F447A30744EB4813AE7E0BFEF523B0870CA10FCBC87F5D8F1',
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('2023-01-20T00:00:00.000Z') } },
sort: { totalNumber: 1 },
'$db': 'test'
},
debugQueryShape: {
cmdNs: { db: 'test', coll: 'pizzaOrders' },
command: 'find',
filter: { orderDate: { '$gt': '?date' } },
sort: { totalNumber: 1 }
}
}
]