Visão geral
Esta página descreve um modelo de dados que usa referências entre documentos para relacionamentos um-para-muitos.
Padrão
O exemplo a seguir mapeia os relacionamentos entre editoras e livros. Ele ilustra a vantagem da referência em relação à incorporação para evitar repetir as informações do editor.
A incorporação do documento da editora dentro do documento do livro repete os dados da editora, conforme mostrado no exemplo a seguir :
{ 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" } }
Para evitar dados repetidos da editora, use referências e mantenha as informações da editora em uma coleção separada da coleção de livros.
O crescimento dos relacionamentos determina onde armazenar a referência. Se o número de livros por editora for pequeno com crescimento limitado, armazene a referência do livro dentro do documento do editor. Se o número de livros por editora for ilimitado, esse modelo de dados criará arrays mutáveis e crescentes, como no exemplo a seguir:
{ 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" }
Para evitar matrizes mutáveis e em crescimento, armazene a referência da editora dentro do documento do livro:
{ _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" }