据我所知,连接在文档数据库中不可能或不可靠。我来自关系数据库背景,并试图了解如何处理这种情况。如果没有JOIN,在文档数据库中处理数据的正确方法是什么?
比方说,我有一个Employees集合,用于存储所有员工相关信息。下面是一个典型的员工文件:
{
"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" }
]
}
在我的所有项目和项目团队中,我如何处理确保我返回团队中个人的所有相关信息,例如全名,电子邮件地址等?
这是两个单独的查询吗?一个用于项目,另一个用于ID出现在项目集合中的人员?
如果是这样,我该如何插入关于人们的数据,例如全名,电子邮件地址?然后在我的应用程序中做一个foreach循环来更新数据吗?
如果我依靠我的应用程序来处理所有相关数据的填充,这是不是会影响文档数据库(如MongoDB)的性能优势?
感谢您的帮助。
非常感谢你们! – Sam 2014-08-29 18:25:18