Eu não sei sobre nenhum recurso interno. Você pode, no entanto, em um script separado, executar
db.currentOp()
de vez em quando, leia o progresso do mapa-redução e notifique as partes interessadas. Este é um exemplo do que posso ver:
> db.currentOp()
{
"inprog" : [
{
"opid" : 249198781,
"active" : true,
"lockType" : "read",
"waitingForLock" : false,
"secs_running" : 14,
"op" : "query",
"ns" : "mydb.mycoll",
"query" : {
"mapreduce" : "mycoll",
"map" : function cf__9__f_() {
emit(this.aid, 1);
},
"reduce" : function cf__10__f_(k, vals) {
var result = 0;
vals.forEach(function (v) {result += v;});
return result;
},
"out" : {
"inline" : 1
}
},
"client" : "127.0.0.1:44254",
"desc" : "conn",
"threadId" : "0x7e98f24e4700",
"connectionId" : 1958947,
"msg" : "m/r: (1/3) emit phase 644165/7670157 8%",
"progress" : {
"done" : 644165,
"total" : 7670157
},
"numYields" : 644
}
]
}