我正在使用此代码向数据库插入(或更新,如果已经存在)新用户:
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或对象本身?
答案 0 :(得分:10)
如docs所述,如果您在safe=True
的参数中加入update
,则会返回对lastError
的回复,否则会返回None
。如果您希望更新文档的_id
,则必须单独查询或使用find_and_modify
代替update
。