0

現在、nodejs/expressjsとmongoDB(+mongoose)をデータベースとしたブログアプリを実装しています。これまでのところ問題なく動作しますが、ネスト/スレッド化されたコメントを実装しようとしています。

そのようなコメントを mongoDB に保存するさまざまな方法について読んだので、柔軟性を保つために各コメントを個別のドキュメントに保存します。

スレッドに埋め込まれたすべてのコメントを保存するのとは対照的に、各親への参照を使用して DB から順不同の形式でコメントを取得します...具体化されたパスは代替手段ですが、その長さのためにインデックス作成に問題が生じる可能性があります。

コメントをレンダリングするときにクライアント側で実際にソートすることを計画しています - 良い考えですか?

私は 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 に答える