Docs Menu
Docs Home
/ /

Recuperar el historial de consultas de una instancia de base de datos federada

Puede recuperar detalles sobre las consultas que se ejecutaron en los últimos 7 días utilizando $queryHistory (agregación). $queryHistory devuelve documentos, uno por consulta, que contienen información sobre la Agregue, busque y cuente las consultas ejecutadas en los últimos 7 días. Puede filtrar por los campos devueltos por $queryHistory en etapas posteriores del pipeline,$match como.

Para $queryHistory ejecutar, utilice el asistente db.aggregate. Ejecute $queryHistory en la admin base de datos.

{
$queryHistory: {
allUsers: <boolean>
}
}
Campo
Tipo
Descripción
Necesidad

allUsers

booleano

Indica si se deben recuperar los documentos de las consultas realizadas por todos los usuarios. Los valores válidos son:

  • true Para obtener documentos para las consultas ejecutadas por todos los usuarios

  • false Para obtener documentos para consultas ejecutadas únicamente por el usuario actual

Debe tener el privilegio viewAllHistory en el recurso del clúster para usar esta opción. Si especifica esta opción, pero no tiene el privilegio viewAllHistory en el recurso del clúster, la federación de datos devuelve un error.

Si se omite, es por defecto false.

Opcional

Cada documento devuelto por $queryHistory contiene los siguientes campos:

Campo
Tipo
Descripción

appName

string

Nombre de la aplicación que emitió la consulta, si está disponible.

background

booleano

Indicador que indica si la consulta se ejecutó en segundo plano. El valor puede ser uno de los siguientes:

  • true - si la consulta se ejecutó con la opción background establecida en true

  • false - si la consulta no especificó la opción background o si la consulta se ejecutó con la opción background establecida en false

collection

string

Nombre de la colección en la que se ejecutó la consulta.

comment

string

Comentario asociado a la consulta, si está disponible. Vacío si la consulta no incluyó ningún comentario.

db

string

Nombre de la base de datos que contiene la colección en la que se ejecutó la consulta.

endTime

Tiempo de finalización de la consulta.

error

string

Error, si lo hay, devuelto por la consulta. Tenga en cuenta que el estado de la consulta 0 indica errores. Cadena vacía si la consulta se ejecutó correctamente.

ok

Int

Estado de la consulta. El valor puede ser uno de los siguientes:

  • 1, si la consulta se ejecutó correctamente

  • 0, si hubo errores al ejecutar la consulta

opid

Identificador único de la operación asociada a la consulta en formato ObjectId. El valor del campo es el mismo que el correlationID que se puede ver en errores y registros.

startTime

Query hora de inicio.

query

Documento

Operación de consulta que se ejecutó.

user

string

Nombre de usuario del usuario que ejecutó la consulta, si está disponible, en el siguiente formato: <authenticationDatabase>.<username>. Tenga en cuenta que la base de datos de autenticación para Atlas Data Federation siempre es admin. Si el nombre de usuario del usuario que ejecutó la consulta no está disponible, el valor estará vacío.

Los ejemplos siguientes utilizan la colección Database0.Collection0 descrita en el Tutorial de introducción.

Para el ejemplo siguiente, supongamos que algunas de las queries descritas en el tutorial comenzar se ejecutaron por user1 en la colección Collection0 de la base de datos Database0. El siguiente ejemplo devuelve información sobre las queries que se ejecutaron por parte de user1 en la colección Database0.Collection0.

db.aggregate([{$queryHistory: {}}]).pretty()

$queryHistory devuelve un documento por cada consulta que se ejecutó en la colección Database0.Collection0.

{
"_id" : ObjectId("613fa06cf9521f85777d5be8"),
"query" : [
{
"$match" : {
"bedrooms" : 3,
"review_scores.review_scores_rating" : {
"$gt" : 79
}
}
},
{
"$count" : "numProperties"
}
],
"appName" : "MongoDB Shell",
"user" : "admin.user1",
"db" : "Database0",
"collection" : "Collection0",
"opid" : ObjectId("16a476f40ac6d97f22e4aa1f"),
"startTime" : ISODate("2021-09-13T19:02:35.589Z"),
"endTime" : ISODate("2021-09-13T19:03:08.730Z"),
"ok" : 1,
"background" : false
}
{
"_id" : ObjectId("613fa0d4f9521f85777d6bc0"),
"query" : [
{
"$match" : {
"bedrooms" : 3
}
},
{
"$sort" : {
"review_scores_rating" : -1
}
},
{
"$limit" : NumberLong(5)
}
],
"appName" : "MongoDB Shell",
"user" : "admin.user1",
"db" : "Database0",
"collection" : "Collection0",
"opid" : ObjectId("16a4770e387f300c22e4bdf2"),
"startTime" : ISODate("2021-09-13T19:04:28.184Z"),
"endTime" : ISODate("2021-09-13T19:04:52.898Z"),
"ok" : 1,
"background" : false
}
{
"_id" : ObjectId("613fa0eef9521f85777d6f6f"),
"query" : [
{
"$match" : {
"limit" : {
"$eq" : 10000
},
"products" : "Commodity"
}
},
{
"$limit" : NumberLong(5)
}
],
"appName" : "MongoDB Shell",
"user" : "admin.user1",
"db" : "Database0",
"collection" : "Collection0",
"opid" : ObjectId("16a477163555e4aa22e4c53b"),
"startTime" : ISODate("2021-09-13T19:05:02.342Z"),
"endTime" : ISODate("2021-09-13T19:05:18.774Z"),
"ok" : 1,
"background" : false
}
{
"_id" : ObjectId("613fa147f9521f85777d7b11"),
"query" : [
{
"$match" : {
"name" : /Lannister/
}
},
{
"$limit" : NumberLong(10)
}
],
"appName" : "MongoDB Shell",
"user" : "admin.user1",
"db" : "Database0",
"collection" : "Collection0",
"opid" : ObjectId("16a4771ba072c0a122e4c9bd"),
"startTime" : ISODate("2021-09-13T19:05:25.736Z"),
"endTime" : ISODate("2021-09-13T19:06:47.147Z"),
"ok" : 1,
"background" : false
}
{
"_id" : ObjectId("613fb9eccaba4e6430c7dcb7"),
"query" : [
{
"$group" : {
"_id" : "$movies",
"Collection0" : {
"$push" : "$title"
}
}
},
{
"$out" : {
"atlas" : {
"projectId" : "{PROJECT_ID}",
"clusterName" : "mySbx",
"db" : "my_test",
"coll" : "sample"
}
}
}
],
"appName" : "MongoDB Shell",
"user" : "admin.user1",
"db" : "admin",
"collection" : "Collection0",
"opid" : ObjectId("16a47ceba943e9cc00c98c62"),
"startTime" : ISODate("2021-09-13T20:51:56.617Z"),
"endTime" : ISODate("2021-09-13T20:51:56.642Z"),
"ok" : 1,
"background" : true
}

En el siguiente ejemplo, ejecutamos una consulta similar a la siguiente contra la Database0.Collection0 colección descrita en el tutorial de introducción.

La consulta incluye cadenas únicas para identificarla en los resultados devueltos por la $queryHistory etapa. Puede adjuntar un comentario a una consulta mediante la comment opción del comando de agregación.

use Database0
db.Collection0.aggregate([ { $match: {"account_id": 557378}},{$sort: {"transactions.symbol": -1}} ],{"comment":"exampleQuery"})

Para recuperar el historial de query usando el valor string de la opción comment del comando aggregate, ejecuta los siguientes comandos contra la base de datos admin:

use admin
db.aggregate([{$queryHistory: {}}, {$match: {"comment": "exampleQuery"}} ])

$queryHistory Encuentra la consulta que incluyó la cadena especificada y devuelve resultados similares al siguiente ejemplo:

[
{
"_id": ObjectId("61e1e4c29e62172566d8e9b6"),
"query": [
{ "$match": { "account_id": 557378} },
{ "$sort": { "transactions.symbol": -1 } }
],
"comment": "exampleQuery",
"appName": "mongosh 1.1.8",
"user": "admin.user1",
"db": "Database0",
"collection": "Collection0",
"opid": ObjectId("16ca3ed2577016e68d60358c"),
"startTime": ISODate("2022-01-14T21:01:27.346Z"),
"endTime": ISODate("2022-01-14T21:01:54.627Z"),
"ok": 1,
"error": "",
"background": false,
}
]

Volver

Terminar consulta

En esta página