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

नेवला प्री-सेव हुक फायरिंग है, लेकिन अतिरिक्त फ़ील्ड को सहेजना नहीं है (मॉडल.अपडेट का उपयोग नहीं कर रहा है)

आप this . से वंचित हैं संदर्भ यहाँ,

.pre('save', function(next) {
  Project.findOne({_id: this.project}).select('numberSeq').exec(function(err, doc) {
    if (err) {
      console.log(err);
    }
    console.log('pre-save hook firing');
      this.number = doc.numberSeq;
      console.log(this.number);
      next();
    });
})

आप कहाँ कहते हैं:

this.number = doc.numberSeq;
console.log(this.number);

वास्तव में findOne क्वेरी के कॉलबैक फ़ंक्शन को संदर्भित करता है, इस प्रकार आप सही कंसोल के साथ समाप्त हो रहे हैं। लॉग और गलत डेटा डाला गया है।

आप प्री सेव हुक के इस संदर्भ को याद रख सकते हैं, और बाद में कॉलबैक के अंदर उस संदर्भ का उपयोग करके नंबर को अपडेट कर सकते हैं। नीचे की तरह:

.pre('save', function(next) {
  var tat=this;
  Project.findOne({_id: this.project}).select('numberSeq').exec(function(err, doc) {
    if (err) {
      console.log(err);
    }
    console.log('pre-save hook firing');
      tat.number = doc.numberSeq;
      console.log(tat.number);
      next();
    });
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्या नेवले की आबादी में स्थिति होना संभव है

  2. स्कीमा को परिभाषित किए बिना आप नेवला का उपयोग कैसे करते हैं?

  3. मोंगोडीबी $dayOfYear

  4. पाइमोंगो में डिफ़ॉल्ट बैच आकार क्या है?

  5. सरणी तत्वों का समवर्ती अद्यतन जो MongoDB में एम्बेडेड दस्तावेज़ हैं