我知道 JOIN 在文档数据库中要么是不可能的,要么是不受欢迎的。我来自关系数据库背景,并试图了解如何处理这种情况。
假设我有一个员工集合,其中存储了所有员工相关信息。以下是典型的员工文件:
{
"id": 1234,
"firstName": "John",
"lastName": "Smith",
"gender": "Male",
"dateOfBirth": "3/21/1967",
"emailAddresses":[
{ "email": "johnsmith@mydomain.com", "isPrimary": "true" },
{ "email": "jsmith@someotherdomain.com", "isPrimary": "false" }
]
}
还可以说,我有一个单独的 Projects 集合,我在其中存储看起来像这样的项目数据:
{
"id": 444,
"projectName": "My Construction Project",
"projectType": "Construction",
"projectTeam":[
{ "_id": 2345, "position": "Engineer" },
{ "_id": 1234, "position": "Project Manager" }
]
}
如果我想返回我的所有项目以及项目团队的列表,我该如何处理以确保我返回有关团队中个人的所有相关信息,例如全名、电子邮件地址等?
是两个单独的查询吗?一个用于项目,另一个用于 ID 出现在项目集合中的人?
如果是这样,我该如何插入有关人员的数据,即全名、电子邮件地址?然后我是否在我的应用程序中执行 foreach 循环来更新数据?
如果我依靠我的应用程序来处理填充所有相关数据,这不是会抵消 MongoDB 等文档数据库的性能优势的性能损失吗?
谢谢你的帮助。