搜索

首页  >  问答  >  正文

mongodb - 评论放在list里,怎么为每条评论创建唯一标识符id?

MongoDB里,我将评论以dict形式存放在list里,由于要考虑到评论的修改和删除,所以不知道怎样给这些评论创建id,各位有没有好办法?

{
        "_id" : ObjectId(),
        "comments" : [
                {
                        "id" : '#就是这里的id#',
                        "text" : "",
                },
        ]
}
天蓬老师天蓬老师2800 天前774

全部回复(3)我来回复

  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:19:54

    您可以使用MongoDB的ObjectId么

    UPDATE:

    评论应该是挂靠在文章上,而不从属于文章

    所以,另外建立个collection,放评论,然后里面包含一个被索引的字段,指向文章的objid。

    @felix021: 那好吧,加个当前最大楼层的字段,删除的楼层不影响其他楼层。

    {
            "_id" : ObjectId(),
            "comments_max_id" : int,
            "comments" : [
                    {
                            "id" : int,
                            "text" : "",
                    },
            ]
    }

    comments_max_id从1开始,没评论时为0
    新加的时候,将新id和comments_max_id同时赋值为comments_max_id+1
    删除的时候也不影响其他回复

    回复
    0
  • 阿神

    阿神2017-04-21 11:19:54

    ObjectId()和comments的index可以确定一条comment

    ObjectId() 和 0 可以知道 是id = ObjectId()的文章的第一条回复

    如果需要管理所有的回复用楼上的方法吧

    回复
    0
  • ringa_lee

    ringa_lee2017-04-21 11:19:54

    可以为子文档创建 自增id

    回复
    0
  • 取消回复