Я понимаю, что JOINs невозможны или недоверчивы в документах. Я исхожу из реляционной базы данных и пытаюсь понять, как справляться с такими сценариями.Без JOINs, каков правильный способ обработки данных в базах данных документов?
Предположим, у меня есть коллектив сотрудников, где я храню всю информацию, связанную с сотрудником. Ниже приведен типичный работник документа:
{
"id": 1234,
"firstName": "John",
"lastName": "Smith",
"gender": "Male",
"dateOfBirth": "3/21/1967",
"emailAddresses":[
{ "email": "[email protected]", "isPrimary": "true" },
{ "email": "[email protected]", "isPrimary": "false" }
]
}
Давайте также сказать, у меня есть отдельная коллекция проектов, где будут храниться данные о проекте, который выглядит примерно так:
{
"id": 444,
"projectName": "My Construction Project",
"projectType": "Construction",
"projectTeam":[
{ "_id": 2345, "position": "Engineer" },
{ "_id": 1234, "position": "Project Manager" }
]
}
Если я хочу, чтобы вернуть список из всех моих проектов вместе с проектными командами, как я могу справиться с тем, чтобы вернуть всю соответствующую информацию о людях в команде, то есть полные имена, адреса электронной почты и т. д.?
Это два отдельных запроса? Один для проектов, а другой для людей, чьи идентификаторы появляются в коллекции проектов?
Если да, то как мне вставлять данные о людях, то есть полных именах, адресах электронной почты? Затем я делаю цикл foreach в своем приложении для обновления данных?
Если я полагаюсь на свое приложение, чтобы обрабатывать все соответствующие данные, это не удар производительности, который бы компенсировал преимущества производительности баз данных документов, таких как MongoDB?
Благодарим за помощь.
Спасибо вам большое! – Sam