Bru*_*Lin 1 activerecord mongodb mongoid
最近在Mongoid上工作,我很困惑,在Mongoid中embed_one和has_one一样?如果不是,有什么区别和任何例子?
首先,阅读有关关系的mongoid文档!
Mongoid Embedded 1-1
使用Mongoid的embeds_one和embedded_in宏定义子项嵌入父文档的一对一关系.
Mongoid Refrence 1-1
使用Mongoid的has_one和belongs_to宏定义父文档中引用子项的一对一关系.
来自mongodb文档:
embeds_one 好处 has_one
- 通常更好的读取操作性能.
- 在单个数据库操作中请求和检索相关数据的能力.
大数据问题:
在文档中嵌入相关数据可能会导致文档在创建后增长.文档增长会影响写入性能并导致数据碎片化.此外,MongoDB中的文档必须小于最大BSON文档大小.
在使用时发生embeds_many.
embeds_one将模型嵌入到另一个模型中但has_one在模型中保存引用.
Mongodb以这种方式在数据库中保存文档(来自Mongodb示例)
参考1-1:
{
_id: "joe",
name: "Joe Bookreader"
}
{
patron_id: "joe",
street: "123 Fake Street",
city: "Faketon",
state: "MA"
zip: 12345
}
Run Code Online (Sandbox Code Playgroud)
嵌入式1-1
{
_id: "joe",
name: "Joe Bookreader",
address: {
street: "123 Fake Street",
city: "Faketon",
state: "MA"
zip: 12345
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |