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

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