首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >蒙古embed_one和has_one

蒙古embed_one和has_one
EN

Stack Overflow用户
提问于 2013-08-09 18:54:36
回答 1查看 1.4K关注 0票数 1

最近我在研究Mongoid,我搞不懂是不是embed_one中的Mongoid和has_one一样?如果没有,有什么区别和例子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-11 13:28:32

首先,读关于关系的蒙古文献

蒙古嵌入式1-1

在父文档中嵌入子文档的一对一关系是使用Mongoid的embeds_one和embedded_in宏定义的。

参考文献1-1

在父文档中引用子文档的一对一关系是使用Mongoid的has_one和belongs_to宏定义的。

来自mongodb文档

embeds_onehas_one的利益

  • 一般情况下,读取操作的性能更好。
  • 在单个数据库操作中请求和检索相关数据的能力。

大数据问题:

在文档中嵌入相关数据,可能会导致文档在创建后增长的情况。文档增长会影响写入性能并导致数据碎片。此外,MongoDB中的文档必须小于最大BSON文档大小。

在使用embeds_many时会发生这种情况。

embeds_one将模型嵌入到另一个模型中,而has_one在模型中保存引用。

Mongodb以这种方式保存数据库中的文档(来自Mongodb示例)

参考1-1:

代码语言:javascript
运行
复制
{
   _id: "joe",
   name: "Joe Bookreader"
}

{
   patron_id: "joe",
   street: "123 Fake Street",
   city: "Faketon",
   state: "MA"
   zip: 12345
}

嵌入式1-1

代码语言:javascript
运行
复制
{
   _id: "joe",
   name: "Joe Bookreader",
   address: {
              street: "123 Fake Street",
              city: "Faketon",
              state: "MA"
              zip: 12345
            }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18153707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档