如何在MongoDB中建模关系?
如何在MongoDB中建模关系?
这个问题已经有答案了:
我最近开始学习MongoDB,但我还不太明白如何在系统中建立实体之间的关系。
因此,由于我习惯于按照SQL的方式建立这些关系,所以当我将逻辑转换为NoSQL的方式时,有点困惑。
我发现MongoDB有两种建模方式:嵌入和引用。
如果我理解正确的话,引用就像我们在SQL中所做的:
- 例如:1对N
- 创建两个表来表示实体,例如用户和地址。
- 创建用户对象和地址对象
- 将Address ID放入用户对象中
{ "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address_ids": [ ObjectId("52ffc4a5d85242602e000000"), ObjectId("52ffc4a5d85242602e000001") ] }
嵌入:
- 只创建一个表,即User。
- 创建一个用户对象,并将地址对象放在其中:
{ "_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" }] }
所以,我的问题是:
要使用MongoDB等NoSQL数据库的最佳功能,我必须使用嵌入式建模吗?
在嵌入式建模中,我只需要创建一个实体,并且在其中的实体,例如地址对象,在这种情况下不需要ID,因为我没有创建表格吗?
admin 更改状态以发布 2023年5月22日