一个关于评论区数据库设计与查询的问题

用mongodb为文章设计一个评论区,有两个集合,一个是保存用户评论的集合,一个是保存用户信息的集合

评论的结构如下,主评论里有子评论(回复)

{
  article_id: article_1,
  comments:[
     {
       user_id: xiaoming,
       comment:"你好啊!", 
       comment_child:[
           {
              user_id:xiaohong,
              comment:"你也好啊"
            }
        ]
     }
  ]
}

用户信息的集合如下:

[{
    user_id: xiaoming,
    user_name: "小明",
    user_avatar: "123.com/123.jpg"
},{
    user_id: xiaoming,
    user_name: "小红",
    user_avatar: "456.com/456.jpg"
}]

我如何通过一次查询能拿到评论和评论人的用户信息呢,比如这样

{
       user_id: xiaoming,
       user_info: {
           user_id: xiaoming,
           user_name: "小明",
           user_avatar: "123.com/123.jpg"
        },
       comment:"你好啊!", 
       comment_child:[
           {
              user_id:xiaohong,
              comment:"你也好啊",
              user_info:{
                  user_id: xiaoming,
                  user_name: "小红",
                  user_avatar: "456.com/456.jpg"
            }
         ]
}

本来可以在评论里直接加一个user_info,用户评论时就把信息写死,但是后来考虑到用户的用户名可以被修改,头像也可以被修改,如果写死了,当用户信息改变时,评论里的用户信息不能得到改变,所以现在的想法是,把用户信息和评论拆分开来

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题