MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Est-il possible d'obtenir des notifications de progression de réduction de carte dans mongo ?

Je ne connais aucune fonctionnalité intégrée. Vous pouvez cependant, dans un script séparé, exécuter db.currentOp() de temps en temps, lisez la carte, réduisez les progrès et informez les parties concernées.

Voici un exemple de ce que je peux voir :

> 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
        }
    ]
}