'Load only a subset of this document\'s fields. ::
post = BlogPost.objects(...).only(\'title\', \'author.name\')
.. note :: `only()` is chainable and will perform a union ::
So with the following it will fetch both: `title` and `author.name`::
post = BlogPost.objects.only(\'title\').only(\'author.name\')
:func:`~mongoengine.queryset.QuerySet.all_fields` will reset any
field filters.
:param fields: fields to include
.. versionadded:: 0.3
.. versionchanged:: 0.5 - Added subfield support'

def only(self, *fields):

    fields = {f: QueryFieldList.ONLY for f in fields}
    self.only_fields = fields.keys()
    return self.fields(True, **fields)
