최근에 MongoDB에서 연구를 시작했고 시스템에있는 엔티티 간의 관계를 어떻게 더 잘 이해하지 못했습니다.MongoDB에서 관계를 모델링하는 방법은 무엇입니까?
SQL에서 이러한 관계를 만들기 위해 익숙해 진 것처럼, NoSQL 방식으로 생각하는 로직을 변경하면 다소 혼란 스럽습니다.
MongoDB는 임베디드 및 참조 된 모델링 유형이 있습니다. 내가 올바른 이해한다면
는, 참조 된 우리가 SQL에서와 같다 :
예:
는 사용자 및 주소와 같은 엔티티를 표현하기 위해 두 개의 테이블을 생성 한-에-N
.만들기 :
사용자 개체
{ "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address_ids": [ ObjectId("52ffc4a5d85242602e000000"), ObjectId("52ffc4a5d85242602e000001") ] }
그리고 내장에 주소 ID를 넣어 사용자의 응답 객체와 주소 객체
만들기 하나의 테이블,이 경우 사용자 .
사용자 개체를 만들고 그 안에 주소 객체 넣어 :
{
"_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"
}]
}
그래서를, 내 질문은 :
이되는 NoSQL 데이터베이스 등 최고의 기능을 사용하려면 MongoDB, 임베디드 모델링을 사용해야합니까?
임베디드 모델링에서는 테이블을 만들지 않았기 때문에 단지 하나의 엔티티 만 만들고이 경우 주소 개체 인 내부 엔티티에는 ID가 없습니다.
가장 쉬운 방법은 응용 프로그램에서이 데이터에 액세스하는 방법을 생각하는 것입니다. 'user' 안에'address'를 넣기를 원할 것입니다. 사용자를 불러올 때 응용 프로그램에서 관련 주소 객체를 모두 원한다면 MongoDB에서 지원되지 않는 조인 (join)이 필요 없습니다. . –