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

Modele relacionamentos de um para muitos com referências de documentos

Esta página descreve um modelo de dados que usa referências entre documentos para relacionamentos um-para-muitos.

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

Voltar

Documentos incorporados um-para-muitos

Nesta página