Merge branch 'getlasterror' of https://github.com/helduel/mongoengine into 163

This commit is contained in:
Ross Lawley
2013-01-22 13:55:06 +00:00
2 changed files with 44 additions and 4 deletions

View File

@@ -240,13 +240,24 @@ class Document(BaseDocument):
actual_key = self._db_field_map.get(k, k)
select_dict[actual_key] = doc[actual_key]
def is_new_object(last_error):
if last_error is not None:
updated = last_error.get("updatedExisting")
if updated is not None:
return not updated
return created
upsert = self._created
if updates:
collection.update(select_dict, {"$set": updates},
upsert=upsert, safe=safe, **write_options)
last_error = collection.update(select_dict,
{"$set": updates}, upsert=upsert, safe=safe,
**write_options)
created = is_new_object(last_error)
if removals:
collection.update(select_dict, {"$unset": removals},
upsert=upsert, safe=safe, **write_options)
last_error = collection.update(select_dict,
{"$unset": removals}, upsert=upsert, safe=safe,
**write_options)
created = created or is_new_object(last_error)
warn_cascade = not cascade and 'cascade' not in self._meta
cascade = (self._meta.get('cascade', True)