mongoid 文档告诉我,should be used with caution
我理解他的 nn 关系,但不知道如何使用纯 mongoid 更好地解决我的问题:
一个课程有很多参与者,一个参与者可以参加很多课程。那么,将参与者存储在课程模型中,并在需要参与者的所有课程时对所有课程进行搜索,不是更快吗?
mongoid 文档告诉我,should be used with caution
我理解他的 nn 关系,但不知道如何使用纯 mongoid 更好地解决我的问题:
一个课程有很多参与者,一个参与者可以参加很多课程。那么,将参与者存储在课程模型中,并在需要参与者的所有课程时对所有课程进行搜索,不是更快吗?
您的模型应该反映您的用例。
做到这一点的一种方法是为课程设置一个模型,为参与者设置一个模型,以及将学生映射到课程的第 3 个模型(具有课程和学生的唯一索引以防止重复)。这样,就有一个模型引用其他 2 个模型。根据您的访问模式,这可能是理想的,也可能不是理想的。
我认为这可能是嵌入文档的一个很好的用例。有关 embeds_many 和 embedded_in,请参见首页上的示例语法:http: //mongoid.org/en/mongoid/
这里的主要缺点是,如果您有不止一门课程的参与者,那么您将在每门课程中都有重复的参与者。
确保您在计划用于查找参与者的字段上放置索引。