传统关系型数据库中,关系关系通过一个外键来表述很清楚。那么在MongoDB中如何表达传统关系数据库中的一对多(1 to n )关系或者多对多( n to n )呢?
基于MongoDB丰富的表达力,我们不能说必须采用向关系数据库那样有一个标准的方法来进行1 to n的关系表达。我们将从3个具体场景来表达MongoDB的关联关系。
首先,我们将1 to n中的n进行场景细化。这个n究竟代表多大的量级呢?是几个到几十个?还是几个到几千个?还是成千上万个?
1 to n(n代表好几个,或几十个,反正不太多)
比如每个Person会有多个Address。此种情况下,我们采用最简单的嵌入式文档来建模。
{
name: 'wx',
addresses : [
{ street: '123 Sesame St', city: 'Anytown', cc: 'USA' },
{ street: '123 Avenue Q', city: 'New York', cc: 'USA' }
]
}
需执行如下语句:
db.persion.insert({
name:"wx",addresses:[{ street: '123 Sesame St', city: 'Anytown', cc: 'USA' },{ street: '123 Avenue Q', city: