2

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

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

4

1 回答 1

10

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

于 2012-06-10T16:14:50.280 回答