From 8428da368d87bdf23fba15775f0145a65dfa966f Mon Sep 17 00:00:00 2001 From: Ido Shraga Date: Tue, 31 Aug 2021 16:49:33 +0300 Subject: [PATCH 1/3] add update operator to documentation --- docs/guide/querying.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/guide/querying.rst b/docs/guide/querying.rst index cf2024a0..e9e1de24 100644 --- a/docs/guide/querying.rst +++ b/docs/guide/querying.rst @@ -543,7 +543,10 @@ Documents may be updated atomically by using the There are several different "modifiers" that you may use with these methods: * ``set`` -- set a particular value +* ``set_on_insert`` -- set only if this is new document `need to add upsert=True`_ * ``unset`` -- delete a particular value (since MongoDB v1.3) +* ``max`` -- update only if value is bigger +* ``min`` -- update only if value is smaller * ``inc`` -- increment a value by a given amount * ``dec`` -- decrement a value by a given amount * ``push`` -- append a value to a list @@ -552,6 +555,7 @@ There are several different "modifiers" that you may use with these methods: * ``pull`` -- remove a value from a list * ``pull_all`` -- remove several values from a list * ``add_to_set`` -- add value to a list only if its not in the list already +* ``rename`` -- rename the key name .. _depending on the value: http://docs.mongodb.org/manual/reference/operator/update/pop/ From 7e10bb2894787341f7d028b12cee1f004ecdbc51 Mon Sep 17 00:00:00 2001 From: Ido Shraga Date: Wed, 1 Sep 2021 10:24:26 +0300 Subject: [PATCH 2/3] rename tester --- tests/queryset/test_queryset.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/queryset/test_queryset.py b/tests/queryset/test_queryset.py index 1aa4f32a..1a15a114 100644 --- a/tests/queryset/test_queryset.py +++ b/tests/queryset/test_queryset.py @@ -867,6 +867,23 @@ class TestQueryset(unittest.TestCase): assert "Bob" == bob.name assert 30 == bob.age + def test_rename(self): + self.Person.drop_collection() + self.Person.objects.create(name="Foo", age=11) + + bob = self.Person.objects.as_pymongo().first() + assert 'age' in bob + assert bob['age'] == 11 + + self.Person.objects(name="Foo").update( + rename__age='person_age' + ) + + bob = self.Person.objects.as_pymongo().first() + assert 'age' not in bob + assert 'person_age' in bob + assert bob['person_age'] == 11 + def test_save_and_only_on_fields_with_default(self): class Embed(EmbeddedDocument): field = IntField() From 85b0c1c945be672eac9dd84de9acffe8af5a783a Mon Sep 17 00:00:00 2001 From: idoshr <35264146+idoshr@users.noreply.github.com> Date: Mon, 20 Sep 2021 22:36:13 +0300 Subject: [PATCH 3/3] Update AUTHORS --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index a35fc5f1..60663940 100644 --- a/AUTHORS +++ b/AUTHORS @@ -262,3 +262,4 @@ that much better: * Jan Stein (https://github.com/janste63) * Timothé Perez (https://github.com/AchilleAsh) * oleksandr-l5 (https://github.com/oleksandr-l5) + * Ido Shraga (https://github.com/idoshr)