Opção 2 de agregação (repetição de dados)

Nessa opção, não temos nenhuma seta de agregação para o User. Ou seja, o Usuário não está agregado a nada, teremos uma coleção SOMENTE para o User.

Isso é útil quando queremos buscar os dados do User sem buscar outros dados associados a ele.

Podemos ver também que dentro do User temos uma lista com referência dos Posts (somente Id's).

Isso é diferente do banco SQL. Nas tabelas relacionais, não podemos ter múltiplas referências.

O post agora tem duas agregações: com User e Comments.

Veja, o objeto de posts possui agregação! (Ou seja, possui outro objeto associado a ele).

❗❗LEMBRE-SE: referência é igual está no objeto de usuário, uma lista com ids referenciando os posts.

Além disso, dessa maneira (opção 2) os dados se repetem. A Maria Brown (author) do Post de ID 5001, ja está citada no início do código JSON.

Essa opção é valida quando queremos buscar um Post, por exemplo, e já saber os seus comentários e autores.

{
   	"id": "1001",
   	"name": "Maria Brown",
   	"email": "maria@gmail.com",
   	"posts": ["5001", "5010"]
}
{
   	"id": "5001",
   	"date": "2018-03-21",
   	"title": "Partiu viagem",
   	"body": "Vou viajar para São Paulo. Abraços!",
   	"author": {
         	"id": "1001",
         	"name": "Maria Brown"
   	}, 	
   	"comments": [
         	{
                	"text": "Boa viagem mano!",
                	"date": "2018-03-21",
                	"author": {
                       	"id": "1013",
                       	"name": "Alex Green"
                	}
         	},
         	{
                	"text": "Aproveite!",
                	"date": "2018-03-22",
                	"author": {
                       	"id": "1027",
                       	"name": "Bob Grey"
                	}
         	}
   	]
}
{
   	"id": "5010",
   	"date": "2018-03-23",
   	"title": "Bom dia",
   	"body": "Acordei feliz hoje!",
   	"author": {
         	"id": "1001",
         	"name": "Maria Brown"
   	}, 	
   	"comments": [
         	{
                	"text": "Tenha um ótimo dia!",
                	"date": "2018-03-23",
                	"author": {
                       	"id": "1013",
                       	"name": "Alex Green"
                	}
         	}
   	]
}

Atualizado