首页 文章

帐户被删除后显示用户名? (猫鼬模式)

提问于
浏览
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 字段替换为其用户名的字符串,以便我的前端即使他们的帐户被删除,他们仍然可以显示他们的名字 .

我如何在Mongoose Schema中创建一个字段作为String or ObjectID有效?

这个问题有更好的解决方案吗?

1 回答

  • 1

    我可以建议您一种非常简单的方法来解决您遇到的问题 . 在您的用户文档中添加字段名称 status . 当用户删除他们的帐户时,即使他们删除了他们的帐户,您也不会详细说明 . 除了已删除帐户的用户外,所有用户的帐户均为 active 状态 . 对于已删除其帐户的用户,其状态为 inactivearchived . 要确保处于非活动状态的用户无法执行某些操作,请在登录时对用户状态进行一些检查 .

    希望这可以帮助 .

相关问题