2016-04-15 10 views
1

私はmongoDBから始めます。mongodb:ネストされたドキュメントを使用するか、参照と別のコレクションを使用する

私はユーザーデータを保存する必要があります。ユーザーごとに、毎日小さなデータレコード(500バイト以下)が追加されるか、更新されます(ほとんどの時間が10以下)。

私はこれを、各ユーザー文書に埋め込まれたデータレコードを持つユーザーの集まりとして、または各データ文書からユーザー文書への参照付きのユーザーコレクションとデータレコードコレクションを持っていますか?それはほとんどあなたが私はあなたのDBにあなたが(ユーザー固有のデータ(名前、住所、ECC。)及び「その他」のデータを格納する必要があることを前提としてい

DBにやろうとしているクエリに依存

答えて

1

クエリが「その他」のデータとともにユーザー固有のデータを取得する場合は、ユーザーコレクションのみを使用し、「その他の」データをユーザーコレクションに埋め込むことをお勧めします。このようにして、ユーザー固有のデータと他のデータを1つのクエリで取得することができます。

クエリが「その他の」データのみを取得する場合(user_idの例から開始)、ユーザー固有のデータは必要ありませんデータを他のデータと一緒に使用する場合は、データコレクションを使用して、他のデータをuser_idと共に保存することができます(データの更新など)

通常、 mongodbでの参照を使用することはお勧めできません。なぜなら、最初の解決方法が必要なのです。

+0

したがって、新しいレコードをサブ文書に追加することは問題ではありませんか?毎回このために文書全体をロードする必要がありますか? – Thomas

+0

はい更新し、サブ文書にデータを追加することができ、このために文書全体を読み込む必要はありません – Moppo

+0

ありがとうございます。私はまた、すべてのレコードをuserdataと共に持っていたいと思います。 – Thomas

1

すべては、データの性質、読み込み頻度、データアクセスパターンなど。

あなたのケースでは、「小さなデータレコード」が実際にはスタンドアロンデータではなくユーザーデータに依存するように見えます。サイズも小さいので、データをユーザーのコレクションに埋め込む方がよいでしょう。

関連する問題