MongoDB không hỗ trợ phép nối. Nếu bạn muốn ánh xạ người dùng đến tin tức, bạn có thể làm như sau
1) Làm điều này ở lớp ứng dụng. Lấy danh sách người dùng, lấy danh sách tin tức và ánh xạ chúng trong ứng dụng của bạn. Phương pháp này rất tốn kém nếu bạn cần điều này thường xuyên.
2) Nếu bạn cần thực hiện bước trước đó thường xuyên, bạn nên thiết kế lại giản đồ của mình để các tin bài được lưu trữ dưới dạng tài liệu nhúng cùng với tài liệu người dùng.
{
"_id": "4ca30373fd0e910ecc000007",
"login": "user22",
"pass": "example_pass",
"date": "2010-09-29"
"news" : [{
"name": "news 222",
"content": "news content 2222",
"date": "2010-09-29"
},
{
"name": "news 222",
"content": "news content 2222",
"date": "2010-09-29"
}]
}
Khi bạn có dữ liệu của mình ở định dạng này, truy vấn mà bạn đang cố gắng chạy là ẩn. Tuy nhiên, một điều cần lưu ý là các truy vấn phân tích trở nên khó khăn trên một lược đồ như vậy. Bạn sẽ cần sử dụng MapReduce để nhận các bài báo được thêm gần đây nhất và các truy vấn như vậy.
Cuối cùng, thiết kế giản đồ và mức độ bất chuẩn hóa mà ứng dụng của bạn có thể xử lý phụ thuộc vào loại truy vấn mà bạn mong đợi ứng dụng của mình chạy.
Bạn có thể thấy những liên kết này hữu ích. Https://www.mongodb.org/display/DOCS/Schema+Designhttp://www.blip.tv/file/3704083
Tôi hy vọng điều đó hữu ích.