Как обновить объект после 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()
Другие вопросы по тегам