Reload the entire document from the database, or refresh specific named top-level fields.

def reload(self, *fields, **kw):
		"""Reload the entire document from the database, or refresh specific named top-level fields."""
		
		Doc, collection, query, options = self._prepare_find(id=self.id, projection=fields, **kw)
		result = collection.find_one(query, **options)
		
		if fields:  # Refresh only the requested data.
			for k in result:  # TODO: Better merge algorithm.
				if k == ~Doc.id: continue
				self.__data__[k] = result[k]
		else:
			self.__data__ = result
		
		return self