2012-06-10 38 views
2

我使用這個代碼中插入(或者更新,如果已經存在)的新用戶到DATABSE:MongoDB:即使成功,爲什麼update()返回null?

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) 

我假設更新()應返回的對象_id甚至對象本身。 ..但它總是返回null,即使upsert正常工作。爲什麼它返回null,我怎樣才能讓它返回_id或對象本身?

回答

10

正如docs描述,如果您在您的參數safe=Trueupdate,以lastError的響應返回,否則返回None。如果您想更新文檔的_id,則需要單獨查詢或使用find_and_modify而不是update

+3

在我來這裏之前,我確實閱讀過文檔......我想他們對我來說只是不清楚。感謝你的回答。 – zakdances

+0

是的!這部分是相當不清楚的..謝謝! – Augiwan