Is it possible to show actual progress from Async Method in Node.Js

I am now showing a simple .gif image of moving progress lines on html user interface. Which will not show the actual progress (in percentage) happening at the server. I am retrieving data from a server(MongoDB) of lower bandwidth.

I have two choices:

1.To show simple loading/progress .gif image on user interface and then after completion of server end process pop a message to user saying that it is completed.

2.Parallel update can be shown in percentage to user as and when there is a considerable progress at server end.

There are some node-upload-progress, node-progress. But how to use them with long running MongoDB query. (instead of file upload for node-upload-progress). How can I achieve the (2nd choice) show parallel progress on UI, is it possible to show actual progress from Async Method in Node.Js?

I have used socket.io for this purpose. Here is a demo app (link) which I had referred.

So emitting an event on every 5% completing of process from server end and listening at client side to update percentage on a progress bar.

Techie guys are most welcome to answer if any other efficient alternatives are in existence with Node.js to achieve the same