MongoDB memiliki perintah 'currentOp' yang berisi operasi saat ini (secara umum, tidak hanya membuka kursor). Hasilnya adalah larik nilai "inprog". Anda memiliki id utas operasi, bukan id kursor, tetapi sangat berguna untuk menyelidiki operasi berat atau operasi yang telah berjalan lama. Ini tidak sepenuhnya seperti yang Anda inginkan, tetapi saya pikir Anda dapat menulis program kecil yang mengurai waktu menjalankan operasi untuk mengidentifikasi operasi mana yang telah berjalan selama jangka waktu tertentu.
Lihat contoh database agregasi saya yang saya jalankan hanya untuk tujuan pengujian, saya akan menyembunyikan beberapa data karena ini sangat masuk akal dalam kasus kami :)
"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
}
}
]
Masukkan saja hasilnya ke dalam variabel:
currentOps = db.currentOp()
dan gunakan sebagai json biasa, atau tulis program kecil yang mengulangi array currentOps.inprog dan periksa secs_running> something
Semoga membantu.