mongoid 中 embeds_many 和 has_many 的区别

Posted

技术标签:

【中文标题】mongoid 中 embeds_many 和 has_many 的区别【英文标题】:Difference between embeds_many and has_many in mongoid 【发布时间】:2012-06-07 06:36:39 【问题描述】:

谁能解释一下 embeds_manyhas_many 在 mongoid 中的区别?

【问题讨论】:

不知道这被否决了。 【参考方案1】:

embeds_many用于在父文档中存放相关文档。

has_many 用于将文档之间的关系存储在单独的集合中。 has_many的相关记录有存储父文档id的字段。

【讨论】:

当我有 User 和 Post 模型时,我可以只嵌入用户名和 ID。建立一个链接,例如用户个人资料。 我不认为embeds_many 记录可以直接使用模型找到,例如Post.find(1)。您必须先找到父记录,然后通过父记录查找子记录,例如user = User.find(1); user.posts.find(1) 这是我自己发现的!当我应该使用 has_many 时,我使用了很多嵌入!

以上是关于mongoid 中 embeds_many 和 has_many 的区别的主要内容,如果未能解决你的问题,请参考以下文章

Backbone.js 和嵌入式一对多关联

使用factorygirls模型embeds_many和embedded_in关系

如何将内存中的 MongoDB 与 Rails、Mongoid 和 Rspec 一起使用?

在 Mongoid 中检索 id 数组

在 mongoid 中使用 LIKE/regex 和变量

使用 Mongoid 的 MongoDB 对话/私人消息模式