MongoDB har en kommando 'currentOp', som indeholder aktuelle operationer (i almindelighed ikke kun åbne markører). Resultatet er en række "inprog"-værdier. Du har operationens tråd-id, ikke et markør-id, men det er meget nyttigt at undersøge tunge operationer eller dem, der har kørt i lang tid. Det er ikke helt, hvad du vil have, men jeg tror, du kunne skrive et lille program, der parse tidskørsel af operationer for at identificere, hvilken der har kørt i en bestemt periode.
Se et eksempel på min database på en aggregering, jeg kører kun til testformål, jeg vil skjule nogle data, fordi det er meget fornuftigt i vores tilfælde :)
"inprog" : [
{
"opid" : 74074645,
"active" : true,
"secs_running" : 2,
"op" : "query",
"ns" : "mydb.Terms.ByHour",
"query" : {
"aggregate" : "Terms.ByHour",
"pipeline" : [
{
"$match" : {
"cluster" : "my_key",
"start" : {
"$gte" : ISODate("2013-11-10T00:00:00Z"),
"$lte" : ISODate("2013-11-11T00:00:00Z")
}
}
},
{
"$group" : {
"_id" : "$start",
"count" : {
"$sum" : "$count"
}
}
},
{
"$sort" : {
"_id" : 1
}
}
]
Indsæt blot resultatet i en variabel:
currentOps = db.currentOp()
og brug det som en almindelig json, eller skriv et lille program, der itererer currentOps.inprog array og se efter secs_running> noget
Jeg håber, det hjælper.