0

投稿とコメントの 2 つのコレクションがあるとします。

post = { _id: 1,
         language: 'en',
         title: ...,
         author: ... }

comment = { _id: 2345,
            parent: 1,
            title: ...,
            author: ... }

すべてのコメントを見つけてから、その親属性を照会して言語を見つける以外に、親が言語「en」を持つすべてのドキュメント (コメント) を見つける別の方法はありますか?

そうでない場合、そのようなクエリを実行しやすくするために、ドキュメントを別の方法で提示する方法はありますか? (その場合、投稿ごとに 1 つのドキュメントではなく、コメント用に別のコレクションを作成しました。これは、ドキュメント全体を取得してフィルター処理するよりも、1 つのコメントを取得する方が簡単で効率的であるためです)。

4

1 に答える 1

1

まず、やりたいことへの近道はありません。したがって、最初の質問に対する答えはノーです。

NoSQL データベースでは、正規化はそれほど重要ではありません。この場合、言語コードに基づいてコメントを照会したいので、言語コードもコメントに追加するだけです。どの投稿にコメントを追加したかアプリ側でわかるので、必要に応じて投稿の言語を簡単に保存できます。

あなたのスキーマに関しては; 単一のコメントを定期的に表示する場合は、コメントごとにドキュメントを作成するのが最善の解決策かもしれません。他のほとんどの状況では、常に少なくともかなりの量のコメントを表示します。この場合、通常はドキュメントごとにコメントのコレクションを作成する方が適切です。コメントページごとにドキュメントを言います。非常にきびきびしたページネーションにもなります。投稿ごとに多くのコメントが期待されない場合は、それらを埋め込むことができます.

于 2011-08-10T15:07:09.393 に答える