INNER CODE UNIT · Python

_handle_projection_operator

mongomock/mongomock · mongomock/aggregate.py:448

    def _handle_projection_operator(self, operator, value):
        if operator == '$literal':
            return value
        if operator == '$let':
            if not isinstance(value, dict):
                raise InvalidDocument('$let only supports an object as its argument')
            for field in ('vars', 'in'):
                if field not in value:
                    raise OperationFailure(f"Missing '{field}' parameter to $let")
            if not isinstance(value['vars'], dict):
                raise OperationFailure('invalid parameter: expected an object (vars)')
            user_vars = {
                var_key: self.parse(var_value) for var_key, var_value in value['vars'].items()
            }
            return _Parser(
                self._doc_dict,
                dict(self._user_vars, **user_vars),
                ignore_missing_keys=self._ignore_missing_keys,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…