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

Afficher la progression d'une longue tâche d'agrégation mongodb

Si vous utilisez le $out opérateur de pipeline d'agrégation pour envoyer le résultat de l'agrégation à un autre (ou le même ) collection, vous pouvez ouvrir un nouveau shell mongo et voir combien de documents se trouvent dans la nouvelle collection. Si vous écrasez la collection à partir de laquelle vous agrégez, MongoDB utilisera un nom de collection temporaire afin de rendre l'opération atomique, comme tmp.agg_out.1 . Alors, cours

db['tmp.agg_out.1'].count()

Pour connaître le nom exact de la collection temporaire, vous pouvez suivre le journal MongoDB actuel log et surveillez les messages concernant l'agrégation. mLab et d'autres fournisseurs d'hébergement cloud MongoDB peuvent également proposer une option pratique de "journal actuel de flux".

Par exemple, lors de l'exécution de la requête dans cette réponse , les messages de journal pertinents peuvent ressembler à ceci :

(J'espérais que nInserted ou keysInserted indiquerait un progrès, mais cela ne semble pas être le cas; le décompte des documents dans la collection temporaire était un indicateur de progression beaucoup plus précis.)