From 10832a2ccc469d7164d590be461a2ea517a03928 Mon Sep 17 00:00:00 2001 From: Momchil Rogelov Date: Wed, 12 Aug 2015 10:57:20 +0100 Subject: [PATCH 1/2] save_condition falls back to "n" if "nModified" is not found to support mongo 2.4 --- mongoengine/document.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongoengine/document.py b/mongoengine/document.py index d68d6d65..cfbebde2 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -361,7 +361,8 @@ class Document(BaseDocument): upsert = save_condition is None last_error = collection.update(select_dict, update_query, upsert=upsert, **write_concern) - if not upsert and last_error['nModified'] == 0: + n_modified = last_error.get('nModified', last_error["n"]) + if not upsert and n_modified == 0: raise SaveConditionError('Race condition preventing' ' document update detected') created = is_new_object(last_error) From b4ce14d74481380d52721b7b88dcfdaea42f9882 Mon Sep 17 00:00:00 2001 From: Momchil Rogelov Date: Thu, 13 Aug 2015 10:11:42 +0100 Subject: [PATCH 2/2] use n instead of nModified in save_condition --- mongoengine/document.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mongoengine/document.py b/mongoengine/document.py index cfbebde2..332c9a38 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -361,8 +361,7 @@ class Document(BaseDocument): upsert = save_condition is None last_error = collection.update(select_dict, update_query, upsert=upsert, **write_concern) - n_modified = last_error.get('nModified', last_error["n"]) - if not upsert and n_modified == 0: + if not upsert and last_error["n"] == 0: raise SaveConditionError('Race condition preventing' ' document update detected') created = is_new_object(last_error)