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

时间:2018-02-28 17:25:17

标签: mongodb doctrine-orm

Reference MappingEmbedded MappingDoctrine MongoDB ODM之间的区别是什么?

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

1 个答案:

答案 0 :(得分:1)

嵌入式文档存储在文档本身中。参考文件存储在其他地方。

参考文档如何存储在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大小限制,则经验法则是使用引用。