Skip to content

Commit

Permalink
Fix PyMongo3.0 support #86
Browse files Browse the repository at this point in the history
  • Loading branch information
Federico Ceratto committed Apr 27, 2015
1 parent ab034c3 commit 6d78340
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions cork/mongodb_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,10 @@ def __setitem__(self, key_val, data):
assert not isinstance(data, dict)
spec = {self._key_name: key_val}
data = {self._key_name: key_val, 'val': data}
self._coll.update(spec, data, upsert=True, w=1)
if is_pymongo_2:
self._coll.update(spec, {'$set': data}, upsert=True, w=1)
else:
self._coll.update_one(spec, {'$set': data}, upsert=True)

def __getitem__(self, key_val):
r = self._coll.find_one({self._key_name: key_val})
Expand All @@ -105,7 +108,12 @@ def __init__(self, parent, root_key, d):

def __setitem__(self, k, v):
super(MongoMutableDict, self).__setitem__(k, v)
self._parent[self._root_key] = self
spec = {self._parent._key_name: self._root_key}
if is_pymongo_2:
r = self._parent._coll.update(spec, {'$set': {k: v}}, upsert=True)
else:
r = self._parent._coll.update_one(spec, {'$set': {k: v}}, upsert=True)



class MongoMultiValueTable(MongoTable):
Expand All @@ -123,7 +131,13 @@ def __setitem__(self, key_val, data):
data[key_name] = key_val

spec = {key_name: key_val}
self._coll.update(spec, data, upsert=True)
if u'_id' in data:
del(data[u'_id'])

if is_pymongo_2:
self._coll.update(spec, {'$set': data}, upsert=True, w=1)
else:
self._coll.update_one(spec, {'$set': data}, upsert=True)

def __getitem__(self, key_val):
r = self._coll.find_one({self._key_name: key_val})
Expand Down

0 comments on commit 6d78340

Please sign in to comment.