@property
    def _cursor_args(self):
        if not IS_PYMONGO_3:
            fields_name = 'fields'
            cursor_args = {
                'timeout': self._timeout,
                'snapshot': self._snapshot
            }
            if self._read_preference is not None:
                cursor_args['read_preference'] = self._read_preference
            else:
                cursor_args['slave_okay'] = self._slave_okay
        else:
            fields_name = 'projection'
            # snapshot is not handled at all by PyMongo 3+
            # TODO: evaluate similar possibilities using modifiers
            if self._snapshot:
                msg = "The snapshot option is not anymore available with PyMongo 3+"
                warnings.warn(msg, DeprecationWarning)
            cursor_args = {
                'no_cursor_timeout': self._timeout
            }
        if self._loaded_fields:
            cursor_args[fields_name] = self._loaded_fields.as_dict()

        if self._search_text:
            if cursor_args not in fields_name:
                cursor_args[fields_name] = {}

            cursor_args[fields_name]['_text_score'] = {'$meta': "textScore"}

        return cursor_args
dataset/ETHPy150Open MongoEngine/mongoengine/mongoengine/queryset/base.py/BaseQuerySet._cursor_args/swapped operands of `not in`