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

लेखन त्रुटि:कॉलबैक। लागू कोई फ़ंक्शन नहीं है (नोड.जेएस और मोंगोडब)

Mongodb में दस्तावेज़ों को अपडेट करने के 2 तरीके हैं:

  1. दस्तावेज़ ढूंढें, इसे सर्वर पर लाएं, इसे बदलें, फिर इसे वापस मोंगोडब में सहेजें।

  2. दस्तावेज़ खोजने के लिए बस मोंगोडब को निर्देश दें, इसे बदलें; फिर अंत में मोंगोडब हो जाने के बाद, कॉलबैक के रूप में परिणाम/त्रुटि लौटाएं।

अपने कोड में, आप दोनों विधियों को मिला रहे हैं।

  1. user.save() के साथ, पहले आप user.findOne के साथ डेटाबेस को खोजते हैं, और इसे सर्वर (नोडज) पर खींचते हैं, अब यह आपके कंप्यूटर मेमोरी में रहता है। फिर आप डेटा को मैन्युअल रूप से बदल सकते हैं और अंत में इसे उपयोगकर्ता के साथ mongodb में सहेज सकते हैं। सेव ()

    User.findOne({ userName: req.params.userName}, function(err, user) {
    
        if (err)
            res.send(err);
    
        //this user now lives in your memory, you can manually edit it
        user.username = "somename";
        user.competitorAnalysis.firstObservation = "somethingelse";
    
        // after you finish editing, you can save it to database or send it to client
         user.save(function(err) {
            if (err)
                return res.send(err);
    
            return res.json({ message: 'User updated!' });
        });
    
  2. दूसरा User.findOneAndUpdate () का उपयोग करना है। यह user.findOne () के बजाय user.update (); के बजाय पसंद किया जाता है; क्योंकि वे मूल रूप से डेटाबेस को दो बार खोज रहे हैं। पहले खोजने के लिए एक (), और अद्यतन करने के लिए फिर से खोजें ()

वैसे भी, दूसरी विधि mongodb को सर्वर पर लाए बिना डेटा को अपडेट करने के लिए कह रही है, अगला, केवल mongodb अपनी क्रिया के साथ समाप्त होने के बाद, आपको कॉलबैक के रूप में अद्यतन-फ़ाइल (या त्रुटि) प्राप्त होगी

User.findOneAndUpdate({ userName: req.params.userName}, 
            {
             $set: { "competitorAnalysis.firstObservation" : req.body.firstObservation,
                      "competitorAnalysis.secondObservation" : req.body.secondObservation,
                      "competitorAnalysis.thirdObservation" : req.body.thirdObservation,
                      "competitorAnalysis.brandName" : req.body.brandName,
                      "competitorAnalysis.productCategory" : req.body.productCategory
            } },
            { upsert: true },
        function(err, user) {
        //after mongodb is done updating, you are receiving the updated file as callback    

        // now you can send the error or updated file to client
        if (err)
            res.send(err);

        return res.json({ message: 'User updated!' });
        });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongorestore स्टैंडअलोन से रेप्लिकासेट तक

  2. मोंगो क्वेरी - क्या संपत्ति मौजूद है?

  3. ट्वीपी के साथ ट्वीट लाने में त्रुटि

  4. MongoDB एकत्रीकरण ढांचे का उपयोग करके 2 दशमलव स्थानों तक गोल करना

  5. MongoDB एक संग्रह से सरणी तत्व खींचता है