Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

포함된 문서로 일대다 관계 모델링하기

이 페이지에서는 일대다 관계를 위해 문서 간에 참조 를 사용하는 데이터 모델에 대해 설명합니다.

다음 예시 출판사와 도서 관계를 매핑합니다. 이는 퍼블리셔 정보를 반복하지 않기 위해 임베딩보다 참조할 때의 이점을 보여줍니다.

책 문서 내에 출판사 문서 포함하면 다음 예시 와 같이 출판사 데이터가 반복됩니다.

{
title: "MongoDB: The Definitive Guide",
author: [ "Kristina Chodorow", "Mike Dirolf" ],
published_date: ISODate("2010-09-24"),
pages: 216,
language: "English",
publisher: {
name: "O'Reilly Media",
founded: 1980,
location: "CA"
}
}
{
title: "50 Tips and Tricks for MongoDB Developer",
author: "Kristina Chodorow",
published_date: ISODate("2011-05-06"),
pages: 68,
language: "English",
publisher: {
name: "O'Reilly Media",
founded: 1980,
location: "CA"
}
}

출판사 데이터가 반복되지 않도록 하려면 참조를 사용하고 출판사 정보를 도서 컬렉션과 별도의 컬렉션에 보관하세요.

관계의 성장에 따라 참조를 저장 위치가 결정됩니다. 출판사당 도서 수가 적고 증가율이 제한적인 경우 출판사 문서 내에 도서 참조를 저장 . 출판사당 책 수가 제한되지 않는 경우 이 데이터 모델 다음 예시 와 같이 변경 가능하고 증가하는 배열을 생성합니다.

{
name: "O'Reilly Media",
founded: 1980,
location: "CA",
books: [123456789, 234567890, ...]
}
{
_id: 123456789,
title: "MongoDB: The Definitive Guide",
author: [ "Kristina Chodorow", "Mike Dirolf" ],
published_date: ISODate("2010-09-24"),
pages: 216,
language: "English"
}
{
_id: 234567890,
title: "50 Tips and Tricks for MongoDB Developer",
author: "Kristina Chodorow",
published_date: ISODate("2011-05-06"),
pages: 68,
language: "English"
}

가변적이고 증가하는 배열을 사용하지 않으려면 책 문서 안에 출판사 참조를 저장하세요.

{
_id: "oreilly",
name: "O'Reilly Media",
founded: 1980,
location: "CA"
}
{
_id: 123456789,
title: "MongoDB: The Definitive Guide",
author: [ "Kristina Chodorow", "Mike Dirolf" ],
published_date: ISODate("2010-09-24"),
pages: 216,
language: "English",
publisher_id: "oreilly"
}
{
_id: 234567890,
title: "50 Tips and Tricks for MongoDB Developer",
author: "Kristina Chodorow",
published_date: ISODate("2011-05-06"),
pages: 68,
language: "English",
publisher_id: "oreilly"
}

돌아가기

일대다 내장된 문서

이 페이지의 내용