数据模型中的嵌入和引用 - mongodb
Embedded and references in a data model - mongodb
我想创建一个mongodb数据库,并使用嵌入式结构。例如,假设 persons 集合中每个文档的大小为 16MB。这意味着我无法在该人的集合中添加子文档 contacts。
1-在这种情况下我该怎么办?
2- 如果我创建联系人集合,则有义务引用此人。
我们可以在 mongodb 数据库中嵌入和引用结构吗?
谢谢。
{
nom:'Kox',
prenom:'Karl',
gender:'M',
addres:
{
rue: '123 Fake Street',
appt:108,
city:'mycity',
zip_code:'GGG23'
},
class:
{
name:'CLASS ONE',
group:'C',
section:'SECTION ONE'
}
}
MongoDB 的优势之一是灵活的架构。
您当然可以为某些个人文档嵌入联系人,为其他人引用联系人,或者为单个个人文档嵌入一些联系人并引用一些联系人。
一个可能的用途是嵌入最近或经常使用的联系人以便快速访问(类似于 per-person 缓存)和所有联系人可通过引用查找。
这个的自然扩展是,如果一个人的整个联系人列表适合个人文档,则永远不需要为该人进行单独的联系人查找。
权衡是:
引用方法允许联系人列表任意大,但除了人员查找之外还需要单独的联系人查找。
嵌入式方法只需要对人员和联系人进行 1 次查找,从而减少了数据库服务器的负载,但将人员 + 联系人列表的大小限制为 16MB。
混合 embedded/referenced 方法要求应用程序代码稍微复杂一些,但可以减少数据库服务器上的查询负载,同时仍然允许联系人列表非常大。
我想创建一个mongodb数据库,并使用嵌入式结构。例如,假设 persons 集合中每个文档的大小为 16MB。这意味着我无法在该人的集合中添加子文档 contacts。 1-在这种情况下我该怎么办? 2- 如果我创建联系人集合,则有义务引用此人。 我们可以在 mongodb 数据库中嵌入和引用结构吗?
谢谢。
{
nom:'Kox',
prenom:'Karl',
gender:'M',
addres:
{
rue: '123 Fake Street',
appt:108,
city:'mycity',
zip_code:'GGG23'
},
class:
{
name:'CLASS ONE',
group:'C',
section:'SECTION ONE'
}
}
MongoDB 的优势之一是灵活的架构。
您当然可以为某些个人文档嵌入联系人,为其他人引用联系人,或者为单个个人文档嵌入一些联系人并引用一些联系人。
一个可能的用途是嵌入最近或经常使用的联系人以便快速访问(类似于 per-person 缓存)和所有联系人可通过引用查找。
这个的自然扩展是,如果一个人的整个联系人列表适合个人文档,则永远不需要为该人进行单独的联系人查找。
权衡是:
引用方法允许联系人列表任意大,但除了人员查找之外还需要单独的联系人查找。
嵌入式方法只需要对人员和联系人进行 1 次查找,从而减少了数据库服务器的负载,但将人员 + 联系人列表的大小限制为 16MB。
混合 embedded/referenced 方法要求应用程序代码稍微复杂一些,但可以减少数据库服务器上的查询负载,同时仍然允许联系人列表非常大。