0

目前,我正在使用 nodejs/expressjs 和 mongoDB (+mongoose) 作为数据库来实现一个博客应用程序。到目前为止它工作正常,但现在我正在尝试实现嵌套/线程注释。

当我了解如何在 mongoDB 中存储此类评论的不同方式时,我会将每条评论存储在单独的文档中以保持灵活性。

与存储嵌入在线程中的所有评论相反,我将从数据库中以无序形式检索我的评论,并引用每个父级...物化路径将是一种替代方案,但是由于它们的长度,索引可能会出现问题。

我打算在呈现评论时到实际的排序客户端 - 好主意吗?

我阅读了关于backboneJS(关系)的内容,并问自己这是否是一个可以帮助实现它的合适工具。

4

1 回答 1

1

是的,将评论作为单独的文档存储在 Mongo 中就可以了。在 Mongo 中,键控查找通常很快,因此维护线程和注释的单独规范化结构应该可以工作。

# Create thread:
db.threads.insert({ id: 123, name: "My thread title..." })

# Add comment:
db.comments.insert({ id: 1, threadId: 123, text: "My comment text..." })

# Find comments in thread by order of insertion (assuming ids are sequential):
db.comments.find({ threadId: 123 }).sort({ id: 1 })

如果您正在构建单页应用程序,Backbone 是一个很好的框架。此外,我建议查看Backbone Marionette。它是一个扩展,使许多很酷的事情成为可能(也有很好的文档)。

于 2012-11-18T15:10:29.620 回答