find_one fix

find_one is supposed to return None if a documment is not available. But
it was implemented that it returns empty list.
This commit fix it and adds some simplification in other function