From f4e1d80a8753e1088433570f5cb17c8a206b619e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20W=C3=B3jcik?= Date: Wed, 28 Dec 2016 02:04:49 -0500 Subject: [PATCH] support a negative dec operator (#1450) --- mongoengine/queryset/transform.py | 3 +-- tests/queryset/queryset.py | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mongoengine/queryset/transform.py b/mongoengine/queryset/transform.py index 61d43490..bb04ee37 100644 --- a/mongoengine/queryset/transform.py +++ b/mongoengine/queryset/transform.py @@ -233,8 +233,7 @@ def update(_doc_cls=None, **update): # Support decrement by flipping a positive value's sign # and using 'inc' op = 'inc' - if value > 0: - value = -value + value = -value elif op == 'add_to_set': op = 'addToSet' elif op == 'set_on_insert': diff --git a/tests/queryset/queryset.py b/tests/queryset/queryset.py index a15807a5..2d5b5b0f 100644 --- a/tests/queryset/queryset.py +++ b/tests/queryset/queryset.py @@ -1826,6 +1826,11 @@ class QuerySetTest(unittest.TestCase): post.reload() self.assertEqual(post.hits, 10) + # Negative dec operator is equal to a positive inc operator + BlogPost.objects.update_one(dec__hits=-1) + post.reload() + self.assertEqual(post.hits, 11) + BlogPost.objects.update(push__tags='mongo') post.reload() self.assertTrue('mongo' in post.tags)