2014-10-05 53 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中間件上通過具有匹配對象ID的所有評論對象,並用它們的用戶名字符串替換user字段,以便我的前端即使他們的帳戶被刪除,他們仍然可以顯示他們的姓名。賬戶被刪除後顯示用戶名? (Mongoose Schema)

我該如何着手將我的Mongoose Schema中的字段設置爲字符串 ObjectID?

是否有更好的解決方案來解決這個問題?

回答

1

我可以建議你一個非常簡單的方法來解決你所處的問題。在你的用戶文檔中添加一個字段名稱status。當用戶刪除他們的賬戶時,您不會刪除他們的賬戶。我暗示這是你需要用戶的詳細信息,即使他們刪除了他們的帳戶。所有用戶的賬戶狀態將爲active,但那些已刪除其賬戶的人除外。對於已刪除帳戶的用戶,其狀態爲inactivearchived。要確保處於不活動狀態的用戶無法執行某些操作,請在登錄時對用戶狀態進行一些檢查。

希望這會有所幫助。

+0

好主意。謝謝。 – 2014-10-05 18:28:29