参考映射和嵌入映射之间的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了参考映射和嵌入映射之间的区别相关的知识,希望对你有一定的参考价值。

Reference MappingEmbedded MappingDoctrine MongoDB ODM有什么区别?

我只需要实现一对多的关系。

答案

嵌入的文档存储在文档本身中。参考文件存储在别处。

参考文档如何存储在db中的简化示例:

//collection one
{
   _id: "one_1"
   many: [
       "many_1",
       "many_2",
       "many_3"
   ]
 }

 //collection many
 {
     _id: "many_1",
     name: "one"
 },
 {
     _id: "many_2",
     name: "two"
 },
 {
     _id: "many_3",
     name: "three"
 }

和嵌入式文件:

//collection one
{
   _id: "one_1"
   many: [
       { _id: "many_1", name: "one"},
       { _id: "many_2", name: "two"},
       { _id: "many_3", name: "three"}
   ]
 }

前者更灵活,后者更快。如果您需要单独修改子文档,或者如果您需要多对多参考,或者如果您在可预见的未来由于大量嵌入式文档而达到16MB大小限制,则经验法则是使用引用。

以上是关于参考映射和嵌入映射之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

字典和哈希表之间的真正区别是啥?

Hibernate:Criteria 和 HQL 的映射行为之间的区别

Cache与主存之间的全相联映射,直接映射和组相联映射的区别

错误3004:从行开始映射片段时出现问题

Linux中的mmap文件支持映射与匿名映射[关闭]

可嵌入类的映射实体