This function reloads/rehydrates the Document Model.  This
        is especially useful for embedded documents that are stored
        in a dehydrated state.

        :param database: the `Database` object source for reloading the document
        :return: an updated instance of `Document` / self.

def reload(self, database):
        """
        This function reloads/rehydrates the Document Model.  This
        is especially useful for embedded documents that are stored
        in a dehydrated state.

        :param database: the `Database` object source for reloading the document
        :return: an updated instance of `Document` / self.
        """
        if self.id is None:
            raise ValueError("_id/id property is None")
        self.import_data(database.get(self.id))
        return self