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

zak*_*ces 2 python database mongodb pymongo

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

   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)
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*yHK 10

文档中所述,如果safe=True在参数中包含,则返回update响应lastError,否则返回None.如果您希望_id更新文档,则必须单独查询或使用find_and_modify而不是update.

  • 在我来到这里之前,我确实阅读了文档...我猜他们对我来说还不清楚.谢谢你的回答. (3认同)