node.js/express/mongodb を使用して自分用のブログ エンジンを作成しようとしています (また、node.js の学習を開始します)。インターネットのチュートリアルよりも少し進んで、ブログ エンジンにタグのサポートを追加したいと思います。
タグで次のことをしたい:
- 閲覧者は、すべてのタグを「タグ クラウド ページ」でタグ クラウドとして見ることができます。
- 閲覧者は、記事の一覧ページと単一の記事ページで記事が持つタグを確認できます
- 閲覧者は単一のタグをクリックして記事リストを表示できます
- さらに、閲覧者は特定のタグを持つ記事を SO の方法で検索できます: [tag1][tag2] --> /tags/tag1+tag2 --> tag1 と tag2 の両方を持つ記事のリスト
リレーショナル データベースでは、post_tag テーブルがこれに使用されます。しかし、MongoDB でこれを設計する方法は?
私はMongoDBのデザインをチェックしました-タグ
しかし、efdeeのコメントとして、デザインは
db.movies.insert({
name: "The Godfather",
director: "Francis Ford Coppola",
tags: [ "mafia", "wedding", "violence" ]
})
問題があります:
これは実際には彼の質問に答えていないようです。映画コレクション全体で使用されているタグの個別のリストを取得するにはどうすればよいでしょうか?
これも私の懸念事項です。私のデザインでは、すべてのタグのリストを表示する必要があります。また、各タグに含まれる記事の数も知る必要があります。上記のデザインよりも良い方法はありますか?
上記の設計に関する私の懸念は、タグのリストを表示したい場合、クエリがデータベース内のすべての記事項目を調べることです。より効率的な方法はありますか?