MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Visualizza lo stato di avanzamento del lavoro di aggregazione mongodb di lunga durata

Se utilizzi $out operatore della pipeline di aggregazione per restituire il risultato dell'aggregazione a un altro (o lo stesso ) è possibile aprire una nuova mongo shell e vedere quanti documenti sono presenti nella nuova raccolta. Se stai sovrascrivendo la raccolta da cui stai aggregando, MongoDB utilizzerà un nome di raccolta temporaneo per rendere atomica l'operazione, come tmp.agg_out.1 . Quindi, corri

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

Per scoprire il nome esatto della raccolta temporanea, puoi accodare l'attuale MongoDB log e guarda i messaggi sull'aggregazione. mLab e altri provider di hosting MongoDB cloud potrebbero avere anche una pratica opzione "stream current log".

Ad esempio, durante l'esecuzione della query in questa risposta , i messaggi di registro pertinenti potrebbero avere il seguente aspetto:

(Speravo che nInserted o keysInserted indicherebbe progressi, ma non sembra essere così; il conteggio dei documenti nella collezione temporanea era un indicatore di avanzamento molto più accurato.)