What is the difference between using CountAsync(Filter) and Find(Filter).CountAsync?
In general, it would be a good idea to have some documentation of the C# driver to know what to use and what not to use because it seems like there is a lot of overlay and all the answers on stack overflow seem to relate to different versions of the driver with 'do this, not that', only to be contradicted by another post which could be related to another version, etc.
My team, and myself, end up using calls 'that work' without having the slightest idea what is the right way to do thing vs. what is working but not advised, or what side effects might be since there is no documentation about this subject on the C# driver. It is lacking a formal documentation which is not made of samples.
This thread is a perfect example of everyone seems to be confused about the C# api since information comes by bits and pieces:
http://stackoverflow.com/questions/31171451/getting-a-single-object-from-mongodb-in-c-sharp