更新不与pymongo合作

时间:2014-06-23 02:52:38

标签: python mongodb pymongo

首先,我使用findandmodify()方法在DB中找到一个文档并将值更新为1。然后我用文档做某事。之后,我想用对象id将文档的状态更新为2,我使用的方法是update()。
但是,在执行此类操作后,状态值不会更改为2.以下是我的代码的简要版本:

try:
    print 'update...'
    db.Tuser.update({'_id':obj_id},  # obj_id is a bson object, it's the object id of the document
                    {'$set':{'state': 2}})
    print 'update done'
except Exception as e:
    print 'update failed: %s' % str(e)

输出结果为:
    更新...
    更新完成

顺便说一句,当我在8台PC上运行时会发生这种情况,只有2台可以成功更新。当我单独运行时,它运作良好。

1 个答案:

答案 0 :(得分:1)

尝试一些基本的调试步骤 - 这会返回任何内容吗?

db.Tuser.find({'_id':obj_id},
                {'$set':{'state': 2}})

obj_id是字符串还是bson对象?

type(obj_id)

如果它是一个字符串,您需要将其转换为bson对象

import bson
obj_id = bson.ObjectId(obj_id)