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

Lập chỉ mục các mảng song song trong Mongodb

Trước khi nói về các giải pháp khả thi, tôi chỉ muốn nêu rõ lý do tại sao MongoDB lại chọn để thực thi hạn chế này đối với việc lập chỉ mục các mảng song song. Khi bạn lập chỉ mục một mảng trong MongoDB, nó sẽ tạo một chỉ mục đa khóa với một khóa cho mỗi phần tử mảng. Do đó, nếu bạn tạo một chỉ mục kết hợp trên hai mảng, một mảng có M giá trị phân biệt và một mảng có N giá trị phân biệt, thì chỉ số này về cơ bản có các khóa MN. Điều này rất tệ - nó phi tuyến tính với số lượng phần tử mảng riêng biệt. Cân nhắc khối lượng công việc cần thiết để duy trì một chỉ mục như thế này khi bạn thêm hoặc xóa các phần tử mảng.

OK, biện minh sang một bên, để giải quyết hạn chế này, sẽ rất hữu ích nếu sử dụng phiên bản MongoDB hiện tại (2.6), hỗ trợ giao điểm chỉ mục. Người ta có thể tạo chỉ mục trên CustomerInformationsVehicleLicenseDisks và sau đó MongoDB có thể sử dụng cả hai chỉ số và cắt chúng để phục vụ các truy vấn có hạn chế trên cả hai.

Nếu vì bất cứ lý do gì, bạn bị mắc kẹt với MongoDB <2.6, thì các tùy chọn của bạn là xem xét thiết kế lại lược đồ hoặc phụ thuộc vào các chỉ mục sử dụng nhiều nhất một trong các trường mảng.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. TypeError:Không thể sử dụng toán tử 'in' để tìm kiếm '_id' ở nam

  2. mảng với các giá trị duy nhất trên tất cả các tài liệu của một bộ sưu tập

  3. Ví dụ về MongoDB cho Yesod / Persently

  4. tạo cơ sở dữ liệu an toàn trong mongodb

  5. Tôi có thể sửa đổi chỉ mục hiện có trong MongoDB mà không làm rơi nó không?