MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Zeigen Sie den Fortschritt des lang andauernden Mongodb-Aggregationsjobs an

Wenn Sie den $out verwenden Aggregation-Pipeline-Operator, um das Ergebnis der Aggregation an einen anderen auszugeben (oder dasselbe )-Sammlung können Sie eine neue Mongo-Shell öffnen und sehen, wie viele Dokumente sich in der neuen Sammlung befinden. Wenn Sie die Sammlung überschreiben, aus der Sie aggregieren, verwendet MongoDB einen temporären Sammlungsnamen, um die Operation atomar zu machen, wie tmp.agg_out.1 . Also lauf

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

Um den genauen Namen der temporären Sammlung herauszufinden, können Sie das aktuelle MongoDB log tailen und achten Sie auf Nachrichten über die Aggregation. mLab und andere Cloud-MongoDB-Hostinganbieter haben möglicherweise auch eine praktische Option zum Streamen des aktuellen Protokolls.

Zum Beispiel beim Ausführen der Abfrage in diese Antwort , können die entsprechenden Protokollmeldungen wie folgt aussehen:

(Ich hatte gehofft, dass nInserted oder keysInserted würde auf Fortschritt hindeuten, aber das scheint nicht der Fall zu sein; die Zählung der Dokumente in der temporären Sammlung war ein viel genauerer Fortschrittsindikator.)