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

Khung tổng hợp không thể sử dụng chỉ mục

Đây là một câu trả lời muộn, nhưng vì $group trong Mongo kể từ phiên bản 4.0 vẫn sẽ không sử dụng các chỉ mục, nó có thể hữu ích cho những người khác.

Để tăng tốc độ tổng hợp của bạn một cách đáng kể, hãy nhập $sort trước $group .

Vì vậy, truy vấn của bạn sẽ trở thành:

db.ads_view.aggregate({$sort:{"campaign":1}},{$group: {_id : "$campaign", "action" : {$sum: 1} }});

Điều này giả định một chỉ mục trên campaign , mà lẽ ra phải được tạo theo câu hỏi của bạn. Trong Mongo 4.0, tạo chỉ mục với db.ads_view.createIndex({campaign:1}) .

Tôi đã thử nghiệm điều này trên một bộ sưu tập chứa 5.5+ Mio. các tài liệu. Không có $sort , việc tổng hợp sẽ không kết thúc ngay cả sau vài giờ; với $sort trước $group , việc tổng hợp mất vài giây.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy cập trực tiếp MongoDB qua JavaScript

  2. Giao điểm chỉ số MongoDB

  3. Về MongoDB

  4. Cảnh báo về việc kết nối với MongoDB bằng máy chủ Node

  5. Thông báo lỗi:MongoError:Xác thực bad auth không thành công thông qua chuỗi URI