2015-04-10 10 views
5

में कौन से पैरामीटर पास किए गए हैं mongoose documentation में यह अक्सर कुछ क्वेरी ऑपरेटर (जैसे findOneAndUpdate) के लिए वैकल्पिक कॉलबैक सूचीबद्ध करता है, हालांकि, यह उल्लेख नहीं करता है कि कॉलबैक क्या पैरामीटर (तर्क) लेता है। वे क्या हैं, और मैं कैसे पता लगाऊंगा?मोंगोस कॉलबैक

इसके अलावा, अगर conditions, update आदि वैकल्पिक हैं, और मैं अंत में एक कॉलबैक निर्दिष्ट करना चाहते हैं, मैं null मूल्य, या खाली वस्तुओं में पारित करने के लिए है या मैं बस कॉलबैक निर्दिष्ट कर सकते हैं करते हैं - और नली क्या मोंगोस जानता है?

Model.findOneAndUpdate([conditions], [update], [options], [callback])

+0

मुझे यकीन नहीं है। लेकिन यह आपके लिए उपयोगी हो सकता है। http://stackoverflow.com/questions/15266162/arguments-to-callback-function-in-mongoose-express-and-node-js –

उत्तर

7

लगभग सभी mongoose queries प्रदान किए गए callback समारोह node callback patterncallback(err, results) में दो तर्क के रूप में दस्तावेज में कहा गया है के साथ बुलाया जाएगा:

कहीं भी एक कॉलबैक नेवला में एक सवाल के पारित कर दिया है, कॉलबैक पैटर्न callback(error, results) इस प्रकार है। क्या परिणाम है आपरेशन पर निर्भर करता है: findOne() के लिए यह एक potentially-null single document है, find() एक list of documents, count()number of documents, update()number of documents affected, आदि API docs for Models क्या कॉलबैक करने के लिए पारित हो जाता है पर और अधिक विस्तार प्रदान करते हैं। err और results:

1

आधिकारिक नेवला प्रलेखन के अनुसार आप इस

query.findOneAndUpdate(conditions, update, options, callback) // executes 
query.findOneAndUpdate(conditions, update, options) // returns Query 
query.findOneAndUpdate(conditions, update, callback) // executes 
query.findOneAndUpdate(conditions, update)   // returns Query 
query.findOneAndUpdate(update, callback)    // returns Query 
query.findOneAndUpdate(update)      // returns Query 
query.findOneAndUpdate(callback)      // executes 
query.findOneAndUpdate()        // returns Query 

तरह findOneAndUpdate फोन तो आप बस अपने कॉलबैक पारित कर सकते हैं कर सकते हैं, अन्य पैरामीटर

http://mongoosejs.com/docs/api.html#query_Query-findOneAndUpdate

के लिए अशक्त पारित करने के लिए कोई जरूरत नहीं
2

डिफ़ॉल्ट रूप से आप कॉलबैक फ़ंक्शन में दो पैरामीटर प्राप्त कर सकते हैं। पहले व्यक्ति में रनटाइम के दौरान हुई कोई भी त्रुटि होती है और दूसरे में दस्तावेज़ का पुराना मान होता है। हालांकि यदि आप findOneAndUpdate विधि में कुछ विकल्प सेट करते हैं तो आप कॉलबैक पैरामीटर में अन्य चर प्राप्त कर सकते हैं। चलो एक उदाहरण के साथ इस देखें:

Model.findOneAndUpdate(
    { id: id_var }, 
    { $set: { name: name_var } }, 
    {new: true, passRawResult: true}, 
    (err, doc, raw) => { /*Do something here*/ }) 

इस मामले में, new: true विकल्प इंगित करता है कि दस्तावेज़ चर नई अद्यतन वस्तु में शामिल है। passRawResult: true विकल्प इंगित करता है कि आप MongoDB ड्राइवर का तीसरा कॉलबैक पैरामीटर के रूप में कच्चे परिणाम प्राप्त कर सकते हैं। कच्चे पैरामीटर में अद्यतन का परिणाम होता है, इस तरह कुछ:

"raw": { 
    "lastErrorObject": { 
     "updatedExisting": true, 
     "n": 1 
    }, 
    "value": { /*the result object goes here*/}, 
    "ok": 1, 
    "_kareemIgnore": true 
}