web-dev-qa-db-ja.com

同じシャードキーで複数のコレクションをシャーディングするMongoDB

2つのmongodbシャードコレクションがあると想像してみましょう。いいねとコメントです。

両方のコレクションにはシャーディングがあり、どちらのコレクションにもシャーディングされたキーとしてuserIdがあります。

好きなコレクションは膨大で、コメントのコレクションは小さいと想像してみてください。私には合計10個のシャードがあります。シャードAからシャードGに名前を付けましょう。

特定のユーザーのいいね!がシャードAにある場合、そのユーザーのコメントもシャードAにあると想定できますか?

したがって、私が達成したいのは、特定のユーザーのデータを同じシャードに入れることです。他のユーザーのいいね!はシャードCにある可能性があり、その場合、彼のコメントもシャードCにあるはずです。

MongoDBを構成する可能性はありますか? (またはそれはデフォルトでどのように機能するか?)

2
user3489820

MongoDBを構成する可能性はありますか? (またはそれはデフォルトでどのように機能するか?)

はい。データの場所を制御する場合は、Zonesを使用する必要があります。それを行う方法のより良い説明については、このリンクをたどってください https://docs.mongodb.com/manual/tutorial/sharding-segmenting-shards/

1