MongoDB:为什么update()即使成功也会返回null?

时间:2012-06-10 15:59:31

标签: python mongodb pymongo database

我正在使用此代码向数据库插入(或更新,如果已经存在)新用户:

   emailAddress = self.request.params.get('emailaddress')
    googleRefreshToken = self.request.params.get('googlerefreshtoken')

    # upsert new user
    postData = {"emailAddress" : emailAddress,
        "googleRefreshToken" : googleRefreshToken}
    newPost = self.request.db.users.update( { 'emailAddress' : emailAddress }, postData, True );


    return json.dumps( newPost, default=json_util.default)

我假设update()应该返回对象_id甚至是对象本身......但即使upsert正常工作,它也总是返回null。为什么它返回null并且如何让它返回_id或对象本身?

1 个答案:

答案 0 :(得分:10)

docs所述,如果您在safe=True的参数中加入update,则会返回对lastError的回复,否则会返回None 。如果您希望更新文档的_id,则必须单独查询或使用find_and_modify代替update