0

こんにちは、私は mongodb を初めて使用し、基本と構造についてまだ学んでいます (SQL の世界から来た後)。

イベントに対するオカレンスを保存しているmongoを使用したテストプロジェクトに取り組んでいます。

したがって、イベントのコレクションがあります (この場合は 2000)。ここで、各オカレンスの隣にオカレンスを保存したいと思います (この場合、イベントごとに 200,000 レコード)。

SQL : Events (table) (1) <- Occurrence (table) (many)

SQL では、これを表すために 1 対多の関係があります。これにより、1 つのイベントに複数のイベントが発生する可能性があります。

mongodb では、このデータを表示する最良の方法は何でしょうか。2 つのコレクションを 1 つ、イベントを 1 つのオカレンスにするのが最善でしょうか。または、大量のドキュメントを含む 1 つのコレクション。

ありがとう

4

1 に答える 1

1

余談ですが、数千のドキュメントは間違いなく大量のデータではありません:)

a) 1 つのドキュメントで 16 MB の制限を超えることがないため、イベントごとにそれほど多くの発生がなく、b) 通常、特定のイベントのすべての発生が必要な場合、イベント ドキュメント内に発生を格納できます。そのため、必要になるたびにデータベースからドキュメント全体を取得しても、多くの帯域幅を浪費することはありません。

数字からすると、イベントごとに約 100 回発生しているように聞こえます。それは非常に小さいので、この場合、イベント内にオカレンスを保存することを検討します (各オカレンスはタイムスタンプにすぎないと仮定します)。

より多くのオカレンス (数千) がある場合、および/または各オカレンスに相当量のデータが含まれている場合、および/または特定のイベントのすべてのオカレンスが必要な場合はめったにない場合は、それらを別のコレクションに入れます。

于 2013-09-27T21:24:27.200 に答える