몽고DB 튜토리얼login
몽고DB 튜토리얼
작가:php.cn  업데이트 시간:2022-04-21 17:49:03

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})

참고: 위 쿼리에서 dbusers는 데이터베이스와 컬렉션을 나타냅니다.

이 데이터 구조의 단점은 사용자와 사용자 주소가 계속 증가하면 데이터의 양이 계속 증가하여 읽기 및 쓰기 성능에 영향을 미친다는 것입니다.

참조 관계

참조 관계는 데이터베이스를 설계할 때 자주 사용되는 방법입니다. 이 방법은 문서의 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를 통해 사용자의 세부 주소 정보를 얻는 것입니다.

아아아아