Как обновить объект после find() с помощью mongokit?
@connection.register
class User(Document):
__database__ = 'foo'
__collection__ = 'bar'
structure = {
'_id' : ObjectId,
'Email' : basestring,
}
col = connection['uplace']['user']
user = col.find()[2]
user2 = User(user)
user2['Email'] = 'newEmail@rit.edu'
#connection.register([user])
#user['Wall'][1]['Reply'][0]['Message'] = 'test new message'
#print user
user2.save()
Однако, когда я запускаю это, я получаю объект, и это экземпляр моего UserDocument. Но это исключение возникает:
server_version = tuple(self.connection.server_info()['version'].split("."))
File "/Library/Python/2.7/site-packages/mongokit/document.py", line 628, in __getattribute__
raise ConnectionError('No collection found')
mongokit.mongo_exceptions.ConnectionError: No collection found
1 ответ
Решение
Правильный путь это:
user2 = col.User(user)
user2.pop('_id') # you should remove the _id or saving user2 will replace user
user2["Email"] = "newEmail@rit.edu"
user2.save()