ドキュメント管理システムのためにMongoDBでタグを保存/操作する
質問
だから私はさまざまなテキストファイルを保存しているペットプロジェクトに取り組んでいます。私はアプリをセットアップして、タグをコレクションの1つに文字列として保存するので、例は次のとおりです。
タグ:「Linux apache wsgi」
それらを保存してそれらを検索することはうまく機能しますが、私の質問は、タグクラウドのようなことをしたい、さまざまなタグをすべてカウントする、またはタグに基づいて動的な選択システムを作成するときに起こります。と連携?それとも、他の方法でそれらを保管する必要がありますか?
論理的には、すべてのレコードをスキャンしてすべてのタグを取得し、スペースに基づいてそれらを破壊し、結果をどうにかキャッシュできます。たぶんそれは正しい答えでしょうが、私はコミュニティの知恵に尋ねたかったのです。
Pymongoを使用してデータベースと対話しています。
解決
それとも、他の方法でそれらを保管する必要がありますか?
タグを保存する標準的な方法は、それらを配列として保存することです。あなたの場合、DBは次のようになります。
tags: ['linux', 'apached', 'wsgi']
...それらを分割して仕事をするための最良の方法は何ですか?
これは何 マップ/削減 のために設計されています。これは効果的に「すべてのレコードをスキャン」します。マップ/レディングの出力は、クエリできる別のコレクションです。
ただし、これを行う別の方法もあります。それは「カウンター」を維持して更新することです。したがって、新しいドキュメントを保存すると、そのドキュメントに関連するすべてのタグも増加します。
所属していません StackOverflow