Tôi hiểu rằng THAM GIA không thể hoặc không được tán thành trong cơ sở dữ liệu tài liệu. Tôi đến từ một nền tảng cơ sở dữ liệu quan hệ và cố gắng hiểu cách xử lý các tình huống như vậy.Nếu không có JOIN, cách nào đúng để xử lý dữ liệu trong cơ sở dữ liệu tài liệu là gì?
Giả sử tôi có bộ sưu tập Nhân viên, nơi tôi lưu trữ tất cả thông tin liên quan đến nhân viên. Sau đây là một tài liệu nhân viên tiêu biểu:
{
"id": 1234,
"firstName": "John",
"lastName": "Smith",
"gender": "Male",
"dateOfBirth": "3/21/1967",
"emailAddresses":[
{ "email": "[email protected]", "isPrimary": "true" },
{ "email": "[email protected]", "isPrimary": "false" }
]
}
Cũng giả sử, tôi có một bộ sưu tập các dự án riêng biệt, nơi tôi lưu trữ dữ liệu dự án mà trông giống như thế:
{
"id": 444,
"projectName": "My Construction Project",
"projectType": "Construction",
"projectTeam":[
{ "_id": 2345, "position": "Engineer" },
{ "_id": 1234, "position": "Project Manager" }
]
}
Nếu tôi muốn trả về một danh sách của tất cả các dự án của tôi cùng với các nhóm dự án, làm cách nào để xử lý đảm bảo rằng tôi trả lại tất cả thông tin thích hợp về các cá nhân trong nhóm, chẳng hạn tên đầy đủ, địa chỉ email, v.v ...?
Có hai truy vấn riêng biệt không? Một cho các dự án và một cho những người có ID xuất hiện trong bộ sưu tập dự án?
Nếu vậy, làm cách nào để chèn dữ liệu về những người, tức là tên đầy đủ, địa chỉ email? Tôi có làm một vòng lặp foreach trong ứng dụng của mình để cập nhật dữ liệu không?
Nếu tôi dựa vào đơn đăng ký để xử lý tất cả dữ liệu thích hợp, đây có phải là lần truy cập hiệu suất bù đắp lợi ích hiệu suất của cơ sở dữ liệu tài liệu như MongoDB không?
Cảm ơn sự giúp đỡ của bạn.
Cảm ơn cả hai rất nhiều! – Sam