1

RDBMSのバックグラウンドを持つmongo/nosqlの初心者として、私は先に進むための最良の方法は何であるか疑問に思いました。

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

栄養についての非常に単純で愚かな例を見てみましょう。これがいくつかのmongoドキュメントの抜粋です:

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

アプリケーションでは、「カテゴリ」のすべての可能な値を表示する選択ボックスが必要です。ここでは、「果物」と「野菜」が表示されます。

続行するための最良の方法は何ですか?

  • 既存のドキュメントからデータを抽出しますか?
  • 一意の可能な値をリストした参照ドキュメントを作成します(RDBMSで行うように)
  • 参照データをrdbmsに保存し、プログラムでmongoとrdbmsをリンクします。
  • 他に何か?
4

1 に答える 1

1

最初のオプションは実装が最も簡単で、インデックスが適切に設定されている場合は効率的であるはずなので(distinctコマンドを参照)、これを使用します。

パフォーマンス(データをフェッチするためにより多くのクエリが必要になる)をスペース(より少ないスペースが必要になる)と交換する2番目のオプション(参照コレクションへのリンク-RDBMSの方法)を選択することもできます。また、このオプションは、カテゴリが他のコレクションでも使用されている場合に推奨されます。

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

カテゴリ値をアプリケーションコードに直接保存することもできます-ユースケースによって異なります。時にはそれが理にかなっていますが、RDBMSの狂信者は、あなたが彼にそう言うと、涙を流します(またはさらに悪いことになります)。YMMV。;)

于 2012-04-13T11:27:10.060 に答える