From 47f8a126ca167cb8fe020e3cc5604b155dfcdebc Mon Sep 17 00:00:00 2001 From: Arto Jantunen Date: Tue, 3 Sep 2019 14:36:06 +0300 Subject: [PATCH] Only set no_cursor_timeout when requested Previously this was always set for all requests. The parameter is only documented as supported for certain queries, so this was probably wrong. Mongo version 4.2 fails update queries that have this parameter set making mongoengine unusable there. Fixes #2148. --- mongoengine/queryset/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mongoengine/queryset/base.py b/mongoengine/queryset/base.py index ba3ac95a..ffa099ac 100644 --- a/mongoengine/queryset/base.py +++ b/mongoengine/queryset/base.py @@ -1576,7 +1576,9 @@ class BaseQuerySet(object): if self._snapshot: msg = "The snapshot option is not anymore available with PyMongo 3+" warnings.warn(msg, DeprecationWarning) - cursor_args = {"no_cursor_timeout": not self._timeout} + cursor_args = {} + if not self._timeout: + cursor_args["no_cursor_timeout"] = True if self._loaded_fields: cursor_args[fields_name] = self._loaded_fields.as_dict()