code: def fields(self, *fields):
          ''' Only return the specified fields from the object.  Accessing a \
              field that was not specified in ``fields`` will result in a \
              :class:``ommongo.document.FieldNotRetrieved`` exception being \
              raised
  
              :param fields: Instances of :class:``ommongo.query.QueryField`` specifying \
                  which fields to return
          '''
          if self._fields is None:
              self._fields = set()
          for f in fields:
              f = resolve_name(self.type, f)
              self._fields.add(f)
          self._fields.add(self.type.mongo_id)
          return self fields(self, *fields):
          ''' Only return the specified fields from the object.  Accessing a \
              field that was not specified in ``fields`` will result in a \
              :class:``ommongo.document.FieldNotRetrieved`` exception being \
              raised
  
              :param fields: Instances of :class:``ommongo.query.QueryField`` specifying \
                  which fields to return
          '''
          if self._fields is None:
              self._fields = set()
          for f in fields:
              f = resolve_name(self.type, f)
              self._fields.add(f)
          self._fields.add(self.type.mongo_id)
          return self
docs: Only return the specified fields from the object.  Accessing a \
              field that was not specified in ``fields`` will result in a \
              :class:``ommongo.document.FieldNotRetrieved`` exception being \
              raised
  
              :param fields: Instances of :class:``ommongo.query.QueryField`` specifying \
                  which fields to return