ユーザーIDをシャーディングしたSQL環境から来たので、これに少し苦労しています。シャードできるように、user_id が追加された複数のテーブルがありました。1 つのテーブルに 100 件のレコードがあり、すべてが同じユーザーの場合、100 件すべてが同じシャードになります。
これで、最初の mongo データベースができました。必要に応じてシャードできるようにしたいと考えています。_id で分割する予定のユーザー コレクションがあります。問題ありません。しかし、2 番目のコレクションがあり、1 人のユーザーに対して何百ものドキュメントが含まれる可能性があります。それらを同じシャードに移動させたいと思います (個別に取得されるため、ユーザー ドキュメントと同じである必要はありませんが、ユーザーによってチャンクで取得されます)。 2 番目のコレクションに追加された user_id によるシャードですが、これでは不十分です。シャード キーは一意である必要があるため、ルックアップを行うたびに、すべてのシャードを調べます。これは最適ではありません。では、コレクションごとにそのようなレコードを 1 つだけにするなど、完全に一意である必要がありますか?
ドキュメントは、問題があることを示しています。私が理解していないことを願っています。