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

Recuperar el Historial de query de instancia federada de base de datos

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 agregación, encontrar y contar queries que se ejecutaron en los últimos 7 días. Puedes filtrar en los campos devueltos por $queryHistory en etapas posteriores de la pipeline, como <a class=\" \" target=\" \"$match href=\" \">.

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

{
$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 solo para las queries ejecutadas por el usuario actual

Debes tener el privilegio viewAllHistory sobre el recurso del clúster para usar esta opción. Si especificas esta opción, pero no tienes el privilegio viewAllHistory en el recurso del clúster, Data Federation 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 muestra si la query 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 query, si está disponible. Vacío si la query no incluía ningún comentario.

db

string

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

endTime

Tiempo de finalización de la query.

error

string

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

ok

Int

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

  • 1si la query se ejecutó correctamente

  • 0, si hubo errores al ejecutar la consulta

opid

Identificador único de la operación asociada con la query en el formato ObjectId. El valor del campo es el mismo que el correlationID que puedes ver en los errores y registros.

startTime

Query hora de inicio.

query

Documento

Query operación que se ejecutó.

user

string

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

Los ejemplos a continuación usan la colección Database0.Collection0 descrita en el Tutorial para comenzar.

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 para cada query que se haya ejecutado 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 query incluye cadenas únicas para ayudar a identificar la query en los resultados devueltos por la etapa $queryHistory. Puedes adjuntar un comentario a una consulta usando la opción del comando aggregate comment.

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 query que incluía la string 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 query

En esta página