2012-04-13 13 views
1

RDBMSのバックグラウンドを持つmongo/nosql初心者の方は、何が最善の方法であるか疑問に思っていました。Mongoドキュメントからデータリストを抽出する

現在、私は "参照データ"と考えるものをいくつかのフィールドに含む大量のドキュメントを持っています。
私の必要性は、検索インタフェースに、それらの "参照フィールド"の可能な値を要約して表示して、私の文書セットのフィルタをさらに進めることです。

栄養についての非常に簡単で愚かな例を考えてみましょう。

{ "_id": 1, "name": "apple", "category": "fruit"} 
{ "_id": 1, "name": "orange", "category": "fruit"} 
{ "_id": 1, "name": "cucumber", "category": "vegetable"} 

私は「カテゴリ」のために可能なすべての値を表示する選択ボックスを持っているしたいと思いappplicationで: はここにいくつかのmongo文書の抽出物です。ここには "果物"と "野菜"が表示されます。

続行するにはどうすればよいですか?

  • 既存の文書からデータを抽出しますか?
  • ...何か他のものを(私はRDBMSで行うように)RDBMSで
  • ストアの参照データを独特の可能な値をリストするいくつかの参照文書を作成し、プログラム的モンゴおよびRDBMSをリンクしますか?

答えて

1

最初のオプションは実装が最も簡単で、インデックスが適切に設定されている場合は効率的です(distinct command参照)。

あなたはまた、(参照コレクションにリンク - RDBMSの道)は、第2のオプション選択できパフォーマンスをトレードスペースのために(あなたがデータをフェッチするための複数のクエリが必要になります)(あなたはより少ないスペースが必要になります)。また、カテゴリが他のコレクションでも使用されている場合は、このオプションが優先されます。

この場合、他のオプションが優れているため、混在システム(NoSQL + RDBMS)を使用することをお勧めします。

カテゴリの値をアプリケーションコードに直接格納することもできます(ユースケースによって異なります)。場合によっては、RDBMSの狂信的な人物が涙を浮かべるかもしれません(または悪い)が、それは彼に言っても意味があります。 YMMV。 ;)

関連する問題