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

$ push đã sử dụng quá nhiều bộ nhớ và không thể tràn ra đĩa. Giới hạn bộ nhớ:104857600 byte

Vì vậy, sau rất nhiều cuộc đấu tranh, đây là những gì tôi đã làm để giải quyết vấn đề của mình Điều đầu tiên được hiểu rằng tôi không thể đẩy dữ liệu vào một mảng mà không giới hạn nó. Vì vậy, tôi đã sử dụng $limit$skip , trước khi nhóm dữ liệu trong đường dẫn. (Điều này cũng duy trì việc phân trang cho truy vấn của tôi). Nhưng vấn đề là duy trì tổng số bản ghi vì nó đã bị mất do giới hạn trước khi nhóm. Vì vậy, giải pháp tôi đã tìm ra là sử dụng $facet , điều này giúp tôi triển khai hai đường ống trong cùng một đường ống tổng hợp.

db.prdfam.aggregate([{
$facet: {
"counts":[
{ '$match': {} },
{ '$lookup': { from: 'pt', localField: 'pfId', foreignField: 'pfId', as: 'pt' } },
{ '$unwind': '$pt' }, { '$match': {} }, 
{ '$lookup': { from: 'prds', localField: 'pt.ptId', foreignField: 'ptId', as: 'prd' } },
{ '$unwind': '$prd' }, { '$match': {} }, 
{ '$lookup': { from: 'del', localField: 'prd.prdId', foreignField: 'prdId', as: 'delivery' } }, 
{ '$unwind': '$delivery' }, { '$match': { 'delivery.currentDelivery': { '$ne': 'OBSOLETE' }, 
'$or': [ { 'prd.prdName': { '$regex': /^.*world.*/i } },
{ 'delivery.rInfo.dataFormat': { '$regex': /^.*world.*/i } },
{ 'delivery.dType': { '$regex': /^.*world.*/i } }, 
{ 'delivery.dId': 'WORLD' }, { 'delivery.UserId': 'WORLD' } ] } }, 
{ '$group': { _id: null, count: { '$sum': 1 } } }
],
"results":[
//same lookup & match conditions as in above element 
{ '$project': { //fields to project } }, 
{ '$sort': { updatedAt: -1 } }, {$skip: 0},{ $limit : 10 },
{ '$group': { _id: null, results: { '$push': '$$ROOT' } } },
{ '$project': { results: 1 } }
]
}
}], 
{ allowDiskUse: true })

Hy vọng điều này sẽ giúp những người khác. Chúc mừng :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhận tên của tất cả các khóa trong bộ sưu tập

  2. Đẩy đối tượng vào mảng nếu mảng tồn tại, nếu không, hãy tạo mảng với đối tượng trong MongoDB

  3. Thay đổi chữ in hoa trong mongo thành cách viết hoa lạc đà?

  4. MongoDB $ indexOfBytes

  5. MongoDB nhận được số lượng riêng lẻ từ các tài liệu bằng các thao tác so sánh