2011-10-31 28 views
0

対の埋込み:のMongoDB:私は以下のコレクションを持っている参照

  • クライアントは、製品がプロジェクトのタスクが含まれており、
  • 会社は、子会社の部門は、ユーザーが含まれている(そして、ユーザがカスタムプロパティが含まれている)が含まれて含まれている含まれている含まれてい

ベストプラクティスは何ですか? mongodbをより効率的に使用するには?私として

ユーザープロジェクトはより頻繁に変更され、別のコレクションとして定義されるべきです。

あなたのアドバイスは何ですか?

答えて

0

MongoDBは埋め込みと参照の両方を行うことができるので、あなたには統一された答えはありません。 しかし、ここにいくつかのヒントがあります:コレクションを膨らませないでください。特に、リストを使用する場合は、下にある要素のクエリが難しいかもしれません。

プロトタイプが可能な場合は、最初にコレクションを埋め込み、プロジェクトとユーザーを追加/削除/クエリする単体テストを作成してみてください。それがうまくいくなら、それらを参照する必要はありません。

+0

インデックスについてはどうですか? db.Company.enshureIndex( 'subsidiary.departament.user.name.lastname')でインデックスを作成できますか? – 1gn1ter

+0

もちろん、どうしてですか? http://www.mongodb.org/display/DOCS/Indexes#Indexes-IndexingonEmbeddedKeys(%22DotNotation%22) –

+0

スピードはどうですか?何がより速くなるでしょうか?コレクションとリンクを別々のドキュメントから分けることはできますか? – 1gn1ter

関連する問題