2016-09-16 2 views
1

the RethinkDB replace() docs을 기반으로 문서의 기본 키를 변경하려고합니다.rethinkdb 문서의 기본 키는 어떻게 변경합니까?

var renamePerson = function(originalEmail, newEmail, cb){ 
    rethink.db(DATABASE).table(TABLE).get(originalEmail).replace({email: newEmail}).run(dbConnection, cb) 
} 

이 작동해야하지만 unchanged1, 그리고 새 문서를 찾는 것은 어떤 결과를 반환하지 않는 것 :이 경우, 기본 키는 email입니다.

문서의 기본 키는 어떻게 변경합니까?

답변

0

몇 가지 조사를하는, 나는 this quote from the developers 발견 '. 우리는 사람들이 삭제하고 대신 문서를 다시 삽입해야 pkeys을 변경할 수없는'

을 그 바탕으로

:

var renamePerson = function(originalEmail, newEmail, cb){ 
    runningDatabase.getPersonByEmail(originalEmail, function(err, person){ 
     if (err) { 
      log('Error finding person to rename', err) 
      cb(err) 
      return 
     } 
     person.email = newEmail; 
     createPersonRaw(person, function(err, createdPerson){ 
      if (err) { 
       log('>>> Err creating new document for renamed person', err) 
       cb(err) 
       return 
      } 
      deletePerson(originalEmail, cb) 
     }) 
    }) 
} 

(createPersonRaw이 문서를 삽입 단지 도우미 함수입니다 deletePerson가 삭제 된 것으로 사람을 표시)