2014-10-05 4 views
0
//User Schema 
{ name: String } //_id automatically added by Mongoose 

//Post Schema 
{ content: String, 
    comments: [{ 
    date: Date, 
    user: Schema.ObjectId, 
    content: String 
    }] 
} 

내 응용 프로그램에서 사용자는 특정 기사에 대한 의견을 남길 수 있습니다. 내 의견 스키마에서 프런트 엔드에 사용자 이름을 채울 수 있도록 사용자를 참조하는 ObjectID를 갖습니다. 그러나 사용자가 자신의 계정을 삭제할 때 과거에 게시 한 모든 댓글의 ObjectID는 이제 의미가 없으므로 프런트 엔드에 표시 할 사용자 이름을 검색 할 수 없습니다. 내 솔루션은 처음에 ObjectID에 의한 사용자의 주석 참조를 가지고 있었고 사전 삭제 Mongoose 미들웨어는 일치하는 ObjectID를 가진 주석 객체를 모두 통과하고 user 필드를 사용자 이름 문자열로 바꿔서 내 앞면 끝은 그들의 계정이 삭제 될 때라도 그들의 이름을 아직도 표시 할 수있다.계정이 삭제 된 후 사용자 이름이 표시됩니까? (몽구스 스키마)

몽구스 스키마에서 필드를 ObjectID로 또는으로 설정하는 방법은 무엇입니까?

이 문제에 대한 해결책이 더 있습니까?

답변

1

사용자의 문제를 해결하는 매우 간단한 방법을 제안 할 수 있습니다. 사용자 문서에 status 필드 이름을 추가하십시오. 사용자가 자신의 계정을 삭제하면 자신의 계정을 삭제하지 않습니다. 내가 제안하는 이유는 계정을 삭제 한 후에도 사용자의 세부 정보가 필요하기 때문입니다. 모든 사용자는 계정을 삭제 한 사용자를 제외하고 자신의 계정에 대해 active 상태를 유지합니다. 계정을 삭제 한 사용자의 경우 상태는 inactive 또는 archived입니다. 비활성 상태의 사용자가 일부 작업을 수행 할 수 없도록하려면 로그인 상태에서 사용자 상태를 확인하십시오.

희망이 도움이됩니다.

+0

좋은 아이디어. 감사. –