publisher 정보가 반복되고 있다.
{
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"
}
}
이를 해결 하기 위해서, referencing을 사용하는데,
각 publisher가 낸 책의 수가 적고, 한 사람이 낼 수 있는 책의 수에 한계가 있다면,
publisher document안에 book reference를 넣는 것이 효과적이다.
// publisher document
{
name: "O'Reilly Media",
founded: 1980,
location: "CA",
books: [123456789, 234567890, ...]
}
// book document
{
_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"
}
그렇지 않다면,
각 책에 publisher_id로 reference할 수 있도록 하는 것이 효과적이다.
{
_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"
}
[Javascript] Event Loop와 Call Stack ⭐ (0) | 2021.06.22 |
---|---|
[React] Virtual-DOM, Reconciliation, fiber (0) | 2021.06.21 |
[MongoDB] Model Relationships Between Documents (2) (0) | 2021.06.10 |
[MongoDB] Model Relationships Between Documents (1) (0) | 2021.06.10 |
[React] Fetch data in React (2)💦 (0) | 2021.05.27 |