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

नेवला में आबाद करने की कोशिश केवल अगर रेफरी अशक्त नहीं है - काम नहीं कर रहा

आपको अपने कोड के निष्पादन के क्रम को समझने की आवश्यकता है:

  1. नेवला डेटाबेस से सभी पुस्तकें प्राप्त करता है जहाँ {_creator:{$ne:null}} . मोंगो केवल पुस्तकों के संग्रह के संदर्भ को देख रहा है ताकि यह निर्धारित किया जा सके कि कौन से दस्तावेज़ वापस करने हैं। आपकी पुस्तक में अभी भी एक लेखक का संदर्भ है, और मोंगो यह नोटिस नहीं करेगा कि लेखक संग्रह में कोई मेल खाने वाला लेखक नहीं है, इसलिए आपकी पुस्तक भरी हुई है।

  2. mongoose सभी लौटाए गए परिणामों को पॉप्युलेट कर रहा है:इसलिए यह लेखकों के संग्रह से लेखकों को लोड कर रहा है और संदर्भों को वास्तविक वस्तुओं से बदल देता है। आपकी पुस्तक के लिए यह एक मेल खाने वाला लेखक नहीं ढूंढता है, इसलिए यह null डालता है वहां।

यही कारण है कि आप अपनी परिणाम सूची के साथ समाप्त होते हैं।

मोंगो जॉइन का समर्थन नहीं करता है - इसलिए आप ऐसी क्वेरी नहीं कर सकते हैं जिसमें एक से अधिक संग्रह से डेटा शामिल हो। पॉप्युलेट आपकी परिणाम सूची में संदर्भों को वास्तविक डेटा से बदलने का एक तरीका है, आप अपने जहां क्लॉज़ के हिस्से के रूप में कभी भी पॉप्युलेट डेटा का उपयोग नहीं कर सकते हैं।

अपनी समस्या का समाधान करने के लिए आप या तो कर सकते हैं:

  • जेएस कोड में अपनी अंतिम परिणाम सूची को फ़िल्टर करें, उदा। लॉश लाइब्रेरी के _.filter के साथ।
  • अपनी सभी पुस्तकों को अपडेट करें और जब भी आप किसी लेखक को हटाते हैं तो संदर्भ हटा दें। ऐसा करने के लिए आप लेखक-स्कीमा पर हुक का उपयोग कर सकते हैं।

AuthorSchema.post('remove', function(doc) {// update your books here});




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में arrayFilters के साथ नेस्टेड उप-दस्तावेज़ अपडेट करें

  2. सटीक उप दस्तावेज़ स्तर की स्थिति के बिना एकाधिक उप-दस्तावेज़ अपडेट करें

  3. MongoDB - तार्किक या पूर्ण पाठ खोज का उपयोग करके शब्दों और वाक्यांशों की खोज करते समय

  4. गंभीर त्रुटि:कक्षा 'मोंगो' C:\\Apache Software Foundation\Apache2.2\htdocs\sample\testdb.php में नहीं मिली

  5. एक संबंधपरक डेटाबेस की तुलना में MongoDB जैसे स्कीमा-मुक्त डेटाबेस का उपयोग करने के क्या लाभ हैं?