I want to save uploaded files such as a user's avatar image to user collection in MongoDB, I guess the steps are:
Am I right about this? Could you give me any clue?
You should just use GridFS to do it - there is no reason why you should worry about files being too large or too small for it to make sense. GridFS was designed to store files so you should use it.
You could always store a reference to the GridFS file in a normal MongoDB document if you need to, and then load it out of GridFS when you need to use it.
See this thread: MongoDB GridFs with C#, how to store files such as images?