'Copy all of the relevant properties of this queryset to
a new queryset (which has to be an instance of
:class:`~mongoengine.queryset.base.BaseQuerySet`).'

def _clone_into(self, new_qs):

    if (not isinstance(new_qs, BaseQuerySet)):
        raise OperationError(('%s    is    not    a    subclass    of    BaseQuerySet' % new_qs.__name__))
    copy_props = ('_mongo_query', '_initial_query', '_none', '_query_obj', '_where_clause', '_loaded_fields', '_ordering', '_snapshot', '_timeout', '_class_check', '_slave_okay', '_read_preference', '_iter', '_scalar', '_as_pymongo', '_limit', '_skip', '_hint', '_auto_dereference', '_search_text', 'only_fields', '_max_time_ms', '_comment')
    for prop in copy_props:
        val = getattr(self, prop)
        setattr(new_qs, prop, copy.copy(val))
    if self._cursor_obj:
        new_qs._cursor_obj = self._cursor_obj.clone()
    return new_qs
