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

नेवला ढूँढें और निकालें

जैसा कि आपने नोट किया है, निम्नलिखित का उपयोग करने से दस्तावेज़ वापस नहीं आएगा:

Data.find(query).remove().exec(function(err, data) {
  // data will equal the number of docs removed, not the document itself
}

जैसे, आप दस्तावेज़ को ActionCtrl . में सहेज नहीं सकते हैं इस दृष्टिकोण का उपयोग करना।

आप अपने मूल दृष्टिकोण का उपयोग करके एक ही परिणाम प्राप्त कर सकते हैं, या किसी प्रकार के पुनरावृत्ति का उपयोग कर सकते हैं। एक नियंत्रण प्रवाह पुस्तकालय जैसे async एसिंक्स कॉल्स को संभालने के लिए काम आ सकता है। यह आपके कोड को कम नहीं करेगा, लेकिन प्रश्नों को कम करेगा। उदाहरण देखें:

Data.find(query, function(err, data) {
  async.each(data, function(dataItem, callback) {
    dataItem.remove(function(err, result) {
      ActionCtrl.saveRemove(result, callback);
    });
  });
});

यह उत्तर मानता है कि ActionCtrl.saveRemove() कार्यान्वयन एक पैरामीटर के रूप में एक व्यक्तिगत दस्तावेज़ ले सकता है, और async.each से कॉलबैक निष्पादित कर सकता है फंदा। async.each प्रत्येक पुनरावृत्ति के अंत में तर्क के बिना चलने के लिए कॉलबैक की आवश्यकता होती है, इसलिए आप आदर्श रूप से इसे .saveRemove() के अंत में चलाएंगे।

ध्यान दें कि remove एक व्यक्तिगत दस्तावेज़ पर विधि वास्तव में उस दस्तावेज़ को वापस कर देगी जिसे हटा दिया गया है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb 2.4 2dsphere बहुत धीमी क्वेरी ($geoIntersects का उपयोग करके)?

  2. MongoDB C# में WriteConcern को समझना

  3. स्प्रिंग डेटा MongoDB - इंडेक्स, एनोटेशन और कन्वर्टर्स

  4. मोंगोडीबी ग्रिडएफएस पर पूर्ण-पाठ खोज?

  5. मोंगोइड डब्ल्यू/रेल, attr_accessible -> कोई विधि नहीं मिली