return one document which match the structure of the object
        `fetch_one()` takes the same arguments than the the pymongo.collection.find method.
        If multiple documents are found, raise a MultipleResultsFound exception.
        If no document is found, return None
        The query is launch against the db and collection of the object.

def fetch_one(self, *args, **kwargs):
        """
        return one document which match the structure of the object
        `fetch_one()` takes the same arguments than the the pymongo.collection.find method.
        If multiple documents are found, raise a MultipleResultsFound exception.
        If no document is found, return None
        The query is launch against the db and collection of the object.
        """
        bson_obj = self.fetch(*args, **kwargs)
        count = bson_obj.count()
        if count > 1:
            raise MultipleResultsFound("%s results found" % count)
        elif count == 1:
            # return self(bson_obj.next(), fetched_fields=kwargs.get("projection"))
            return next(bson_obj)