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

Lỗi tràn bộ nhớ khi sử dụng truy vấn tổng hợp và $ nhóm

Một số ý tưởng:

Bạn không cần $project đầu tiên giai đoạn trong truy vấn. Và, bạn có thể bao gồm { "$toDate": "$originaltimestamp" } trong nhóm $group giai đoạn _id , như bên dưới:

"_id": { 
    "$dateToString": { 
        "format": "%Y-%m-%d", "date": { "$toDate": "$originaltimestamp" } 
    } 
}

Giới thiệu về $push: "$$ROOT" - thay vì $$ROOT , chỉ chụp những trường bạn cần nhất (hoặc quan trọng). Điều này là để giảm việc sử dụng bộ nhớ. Ví dụ:

"data": { 
    $push: { 
        "subscriber_id": "$subscriber_id",
        "type": "$type",
        // other required fields...
    } 
}

Cuối cùng, bạn có thể nghĩ đến việc hạn chế truy vấn cho một nhóm ngày vào thời điểm. Điều này sẽ yêu cầu chạy truy vấn nhiều hơn một lần cho các phạm vi ngày khác nhau - nhưng tôi nghĩ rằng nó có thể tốt hơn về tổng thể. Ví dụ:một tháng tại một thời điểm phù hợp với month đồng ruộng. Và, month có thể được lập chỉ mục cho hiệu suất. Điều này sẽ yêu cầu bao gồm một $match ở đầu (giai đoạn đầu tiên) của truy vấn, ví dụ:

{ $match: { month: "202001" } }

Và, điều này sẽ truy vấn dữ liệu cho tháng 1 năm 2020.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tìm tài liệu cuối cùng trong ngày trong 7 ngày qua

  2. làm thế nào để có được quyền xác thực mongodb

  3. MongoDB - Làm cách nào để xác định nhiều kiểu dữ liệu cho một trường trong Mongoose?

  4. Cập nhật trường chấm Mongodb

  5. Tìm phần tử đầu tiên trong mảng lồng nhau phù hợp với điều kiện