2011-08-03 8 views
2

頻繁に検索するために使用される文書の属性については、代わりに関連付けとして保存する方が良いでしょうか?mongodb:属性として保存するか、関連付けを作成する方が良いですか?

たとえば、多くの「投稿」があり、各投稿にカテゴリとしての属性があるとします。このような場合に

しかし、我々は多くの場合、カテゴリ別にフィルタリングしようとしていることを知っている(例えば。カテゴリーAと、すべての記事を見つける。)

、「カテゴリ」のための別々のコレクションを作成する方がよい、としていますそれらは参照の記事ですか?

+0

huh?あなたはポスト参照カテゴリを意味します、そうですか? –

+0

私は、カテゴリのコレクションを持っていると思っていたし、カテゴリーごとに投稿IDのリストを保管していました。 – Daniel

答えて

0

mongodbでは通常、関連付けを避けるためにいつもより良い(embeddedドキュメント)ので、すべての処理が遅くなるためです。しかし、カテゴリーと投稿の場合、2つの別々のコレクション投稿、カテゴリーを作成することができます。また、カテゴリ別に検索する必要がある場合は、カテゴリ名別にカテゴリコレクションからカテゴリIDを読み込み、投稿コレクション内のカテゴリIDで検索します。

+0

素晴らしい、ありがとう。 この場合、idではなくカテゴリ名で検索するとパフォーマンスに違いはありますか? – Daniel

+0

投稿のコレクションでは、複雑なクエリを使用する場合はcategoryまたはpost_dateのような複合インデックスにインデックスを作成します。 –

関連する問題