別のコレクション内のこれらのドキュメントへの参照の存在に基づいて、コレクションからドキュメントを取得しようとしています。
2 つのコレクションがあり、モデルが次のようにUsersなっCoursesているとします。
- ユーザー:
{_id, name} - コース:
{_id, name, user_id}
注: これは単なる架空の例であり、実際の使用例ではありません。の名前フィールドで重複が問題ないと仮定しましょうCourse。痩せましょうCourse as CourseRegistrations。
ここでは、 の を保持して への参照を維持していUserます。また、文字列として保存されていることに注意してください。Courseuser_id_IdUser
ここで、特定のコース セットに登録されているすべてのユーザーを取得したいと考えています。
2つのクエリで実行できることを知っています。最初にクエリを実行し、一連のコースusers_idのコレクションからフィールドを取得します。Course次に、前のクエリで取得したユーザー IDUserを使用してコレクションをクエリします。$inしかし、ドキュメントの数が数万以上になると、これはうまくいかないかもしれません。
たった1回のクエリでこれを行うより良い方法はありますか?