Reference Mapping
中Embedded Mapping
和Doctrine MongoDB ODM
之间的区别是什么?
我只需要实现一对多关系。
答案 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大小限制,则经验法则是使用引用。