更新不适用于pymong

2024-09-24 06:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我找到一个文档,并使用findandmodify()方法将DB中的值state更新为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台电脑上运行它时,会发生这种情况,只有2台可以成功更新。当我单独运行它时,它运行得很好。在


Tags: 文件the对象方法文档idobjdb
1条回答
网友
1楼 · 发布于 2024-09-24 06:21:11

尝试一些基本的调试步骤-这会返回什么吗?在

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

obj_id是字符串还是bson对象?在

^{pr2}$

如果是字符串,则需要将其转换为bson对象

import bson
obj_id = bson.ObjectId(obj_id)

相关问题 更多 >