【问题标题】:MongoDB: Why does update() return null even when successful?MongoDB:即使成功,为什么 update() 也会返回 null?
【发布时间】:2012-06-13 18:29:28
【问题描述】:

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

   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 或对象本身?

【问题讨论】:

    标签: python mongodb pymongo database


    【解决方案1】:

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

    【讨论】:

    • 我在来这里之前确实阅读了文档……我想他们只是不清楚。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 2017-03-20
    相关资源
    最近更新 更多