您的位置:首页 > 数据库 > Mongodb

mongo笔记07( MongoDB 关系)

2017-12-20 16:06 141 查看
<\?php

/**

* MongoDB 关系

*/

/**

* MongoDB 的关系表示多个文档之间在逻辑上的相互联系。

* 文档间可以通过嵌入和引用来建立联系。

MongoDB 中的关系可以是:

1:1 (1对1)

1: N (1对多)

N: 1 (多对1)

N: N (多对多)

*/

/**

* 实例

*/

/**

* 接下来我们来考虑下用户与用户地址的关系。

* 一个用户可以有多个地址,所以是一对多的关系。

* 以下是 user 文档的简单结构:

{

“_id”:ObjectId(“52ffc33cd85242f436000001”),

“name”: “Tom Hanks”,

“contact”: “987654321”,

“dob”: “01-01-1991”

}

以下是 address 文档的简单结构:

{

“_id”:ObjectId(“52ffc4a5d85242602e000000”),

“building”: “22 A, Indiana Apt”,

“pincode”: 123456,

“city”: “Los Angeles”,

“state”: “California”

}

嵌入式关系

使用嵌入式方法,我们可以把用户地址嵌入到用户的文档中:

“_id”:ObjectId(“52ffc33cd85242f436000001”),

“contact”: “987654321”,

“dob”: “01-01-1991”,

“name”: “Tom Benzamin”,

“address”: [

{

“building”: “22 A, Indiana Apt”,

“pincode”: 123456,

“city”: “Los Angeles”,

“state”: “California”

},

{

“building”: “170 A, Acropolis Apt”,

“pincode”: 456789,

“city”: “Chicago”,

“state”: “Illinois”

}]

}

以上数据保存在单一的文档中,可以比较容易的获取和维护数据。 你可以这样查询用户的地址:

>db.users.findOne({“name”:”Tom Benzamin”},{“address”:1})

这种数据结构的缺点是,如果用户和用户地址在不断增加,数据量不断变大,会影响读写性能。

引用式关系

引用式关系是设计数据库时经常用到的方法,这种方法把用户数据文档和用户地址数据文档分开,通过引用文档的 id 字段来建立关系。

{

“_id”:ObjectId(“52ffc33cd85242f436000001”),

“contact”: “987654321”,

“dob”: “01-01-1991”,

“name”: “Tom Benzamin”,

“address_ids”: [

ObjectId(“52ffc4a5d85242602e000000”),

ObjectId(“52ffc4a5d85242602e000001”)

]

}

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb