嵌套/线程评论系统 - MongoDB和Java

时间:2011-07-07 19:01:35

标签: java mongodb comments nested

我目前正在建立一个慈善学生支持网站,以帮助想要申请美国大学的非洲学生。我想构建一个线程评论系统。我正在计划使用MongoDB,(后端是所有java)。我是MongoDB的新手,因此我花了一些时间来吸收所有信息。我有一些问题要问你:

有没有人知道我可以看看的任何实现?我希望在周末结束时完成这项工作。

我在考虑做这样的事情:

conversation
{ 
  _id: BigInt, 
  entityID: BigInt, //reference to what is being commented
  comments:[
    status: String (approved, spam, removed),  
    UID: BigInt,  
    timestamp: date  
    commentText: String
    likeCount: int
    replies:[
      status: String (approved, spam, removed),  
      UID: BigInt,  
      timestamp: date  
      commentText: String
      likeCount: int
    ]
  ]
}

非常感谢你的帮助,

1 个答案:

答案 0 :(得分:0)

您可以使用nested set model使用一个平面集合作为评论。这需要维护一些工作(特别是因为你有一个多根,多树集合),但它更具可扩展性,更易于操作和查询。

你会:

conversations {
  _id: ObjectId,
  whatever fields you need,
}
comments {
  _id: ObjectId,
  parentId: ObjectId,
  conversationId: ObjectId,
  authorId: ObjectID,
  commentText: String,
  lft: Int,
  rght: Int,
  ...
}

我不熟悉Java驱动程序,但是它没有_id字段的特定类型吗?这样您就可以免费访问时间戳,并为您提供唯一的ID。