我正在尝试根据对另一个集合中这些文档的引用的存在从集合中获取文档。
假设我有两个系列Users
,Courses
模型如下所示:
- 用户:
{_id, name}
- 课程:
{_id, name, user_id}
注意:这只是一个假设的例子,而不是实际的用例。所以让我们假设在Course
. 让我们瘦Course as CourseRegistrations
。
在这里,我在User
中Course
保持user_id
对_Id
的引用User
。请注意,它存储为字符串。
现在我想检索注册到一组特定课程的所有用户。
我知道可以通过两个查询来完成。那是首先运行一个查询并从该组课程的集合中获取该users_id
字段。Course
然后通过使用和上一个查询中检索到的用户 id来查询User
集合。$in
但是如果文档的数量在数万或更多,这可能并不好。
有没有更好的方法在一个查询中做到这一点?