MongoDB har kommandot 'currentOp' som innehåller aktuella operationer (i allmänhet inte bara öppna markörer). Resultatet är en uppsättning "inprog"-värden. Du har operationens tråd-id, inte ett markör-id, men det är väldigt användbart för att undersöka tunga operationer eller de som har pågått länge. Det är inte perfekt som du vill ha men jag tror att du kan skriva ett litet program som tolka tiden för operationer för att identifiera vilken som har körts under en viss tidsperiod.
Titta på ett exempel på min databas av en aggregering som jag kör bara i testsyfte, jag kommer att dölja en del data eftersom det är väldigt vettigt i vårt fall :)
"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
}
}
]
Lägg bara in resultatet i en variabel:
currentOps = db.currentOp()
och använd den som en vanlig json, eller skriv ett litet program som itererar currentOps.inprog-arrayen och letar efter secs_running> något
Jag hoppas att det hjälper.