MongoDB 관계
MongoDB 관계는 여러 문서 간의 논리적 상호 연결을 나타냅니다.
삽입과 인용을 통해 문서 간의 관계를 구축할 수 있습니다.
MongoDB의 관계는 다음과 같습니다.
1:1(1 대 1)
1:N(1 대 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})
참고: 위 쿼리에서 db 및 users는 데이터베이스와 컬렉션을 나타냅니다.
이 데이터 구조의 단점은 사용자와 사용자 주소가 계속 증가하면 데이터의 양이 계속 증가하여 읽기 및 쓰기 성능에 영향을 미친다는 것입니다.
참조 관계
참조 관계는 데이터베이스를 설계할 때 자주 사용되는 방법입니다. 이 방법은 문서의 id를 참조하여 사용자 데이터 문서와 사용자 주소 데이터 문서를 분리합니다. 🎜> 관계를 구축하는 필드입니다.
{ "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address_ids": [ ObjectId("52ffc4a5d85242602e000000"), ObjectId("52ffc4a5d85242602e000001") ] }위 예에서 사용자 문서의
address_ids 필드에는 사용자 주소의 ObjectId 배열이 포함되어 있습니다.
이러한 사용자 주소의 개체 ID(ObjectId)를 읽어 사용자의 자세한 주소 정보를 얻을 수 있습니다. 이 방법에는 두 가지 쿼리가 필요합니다. 첫 번째는 사용자 주소의 객체 ID(ObjectId)를 쿼리하는 것이고, 두 번째는 쿼리 ID를 통해 사용자의 세부 주소 정보를 얻는 것입니다.아아아아