Node.js 线程化注释和backboneJS

Node.js 线程化注释和backboneJS,node.js,backbone.js,mongoose,express,Node.js,Backbone.js,Mongoose,Express,目前,我正在使用nodejs/expressjs和 mongoDB(+mongoose)作为数据库。到目前为止效果很好,但现在我正在尝试 实现嵌套/线程化注释 当我读到关于如何将这些评论存储在 mongoDB I将把每个注释存储在一个单独的文档中以保留 灵活性 与存储线程中嵌入的所有注释相反,我将检索这些注释 我在DB中以无序形式发表的评论,并引用了每一位家长。。。 物化路径是另一种选择,但是索引可能会有问题 由于他们的长度 我计划在渲染时将其复制到实际的排序客户端 评论-好主意 我读到back

目前,我正在使用nodejs/expressjs和 mongoDB(+mongoose)作为数据库。到目前为止效果很好,但现在我正在尝试 实现嵌套/线程化注释

当我读到关于如何将这些评论存储在 mongoDB I将把每个注释存储在一个单独的文档中以保留 灵活性

与存储线程中嵌入的所有注释相反,我将检索这些注释 我在DB中以无序形式发表的评论,并引用了每一位家长。。。 物化路径是另一种选择,但是索引可能会有问题 由于他们的长度

我计划在渲染时将其复制到实际的排序客户端 评论-好主意

我读到backboneJS(关系型)并问自己
这是一个合适的工具,可以帮助实现它。

是的,将注释作为单独的文档存储在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 })

如果你正在构建一个单页应用程序,主干网是一个很好的框架。另外,我建议你看看。这是一个扩展,使许多很酷的事情成为可能(也有很好的文档)。

感谢您的回答和有用的提示。虽然你帮了我的忙,但我不完全确定该把逻辑放在哪里。mongo中的排序:非常适合使用带有注释的单个线程,但是想象一下,有很多不同缩进的注释。时间排序会破坏实际的线程排序。在Jade中:不好,因为“长时间”运行,CPU密集型的东西。客户端:除了简单地呈现注释外,还需要很多逻辑。我正在寻找一种方法,在Mongo端尽可能多地保存注释的实际顺序。如果我没有记错,Mongo会以插入顺序存储集合,因此如果您发出
find()
,那么您应该能够按原样使用它(即排序顺序将是按时间顺序排列的插入顺序)。如果您想在客户端进行排序,
Backbone.Collection
Backbone.marionete.CollectionView
结合使用,可以非常轻松地基于自定义排序功能进行排序。