MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

$push ने बहुत अधिक मेमोरी का उपयोग किया और डिस्क पर फैल नहीं सकता। मेमोरी लिमिट:104857600 बाइट्स

तो, इतने संघर्ष के बाद, मैंने अपनी समस्या को हल करने के लिए क्या किया है। पहली बात समझ में आई कि मैं डेटा को सीमित किए बिना एक सरणी में धक्का नहीं दे सकता। इसलिए मैंने $limit . का इस्तेमाल किया और $skip , पाइपलाइन में डेटा को समूहीकृत करने से पहले। (यह मेरी क्वेरी के लिए पेजिनेशन भी बनाए रखता है)। लेकिन समस्या रिकॉर्ड की कुल संख्या को बनाए रखने की थी क्योंकि यह समूहीकरण से पहले सीमा के कारण खो गया था। इसलिए, मैंने जो समाधान निकाला वह है $facet , जो मुझे एक ही एकत्रीकरण पाइपलाइन के भीतर दो पाइपलाइनों को लागू करने में मदद करता है।

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 })

आशा है कि यह दूसरों की मदद करेगा। चीयर्स :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. विंडोज़ में मोंगोडीबी सी ड्राइवर बनाना

  2. MongoDb खोज प्रदर्शन

  3. मोंगोडब 3.0 जावा सम्मिलित करेंएक

  4. एक एम्बेडेड दस्तावेज़ में MongoDB में एकल फ़ील्ड अपडेट करें

  5. हम एक्सप्रेस/नोडज में अनुरोध प्राथमिकता को कैसे संभालते हैं?