【发布时间】:2012-11-05 09:28:03
【问题描述】:
我正在尝试根据另一个集合中存在对这些文档的引用来从集合中获取文档。
假设我有两个集合 Users 和 Courses,模型如下所示:
- 用户:
{_id, name} - 课程:
{_id, name, user_id}
注意:这只是一个假设示例,并非实际用例。所以让我们假设在Course 的名称字段中重复是可以的。让我们瘦Course as CourseRegistrations。
在这里,我在Course 中保持对User 的引用,其中user_id 持有_Id 的User。请注意,它存储为字符串。
现在我想检索注册到特定课程集的所有用户。
我知道这可以通过两个查询来完成。这是首先运行查询并从课程集的Course 集合中获取users_id 字段。然后使用$in 和上一个查询中检索到的用户ID 查询User 集合。但是如果文档数量在数万或更多,这可能并不好。
有没有更好的方法在一个查询中做到这一点?
【问题讨论】:
标签: mongodb mongoid mongodb-ruby