2012-06-10 10 views
2

나는 (이미 존재하는 경우 또는 업데이트)를, 데이타베이스에 새 사용자를 삽입하는이 코드를 사용하고 있습니다 :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 또는 객체 자체 반환해야합니다. .. upsert가 올바르게 작동하더라도 항상 null을 반환합니다. 왜 null을 반환하고 _id 또는 객체 자체를 반환 할 수 있습니까? 당신이 update에 매개 변수 safe=True을 포함 할 경우 docs에서 설명한 바와 같이

답변

10

lastError에 대한 응답은 그렇지 않으면 None 반환, 반환됩니다. 문서의 _id을 업데이트하려면 별도로 쿼리하거나 update 대신 find_and_modify을 사용해야합니다.

+3

내가 여기 오기 전에 나는 문서를 읽었습니다 ... 나는 그들이 내게 불분명했다고 생각합니다. 답변 해주셔서 감사합니다. – zakdances

+0

예! 이 부분은 꽤 불분명하다 .. 고마워! – Augiwan

관련 문제