MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

mongodb php - cách thực hiện truy vấn giống như INNER JOIN

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tài liệu trùng lặp MongoDB ngay cả sau khi thêm khóa duy nhất

  2. Cách giới hạn số lần cập nhật tài liệu trong mongodb

  3. mongoose unique:true không hoạt động

  4. TransactionRequiredException Thực hiện truy vấn cập nhật / xóa

  5. Triển khai đánh giá đối tượng biểu thức truy vấn giống goMongoDB