यह सही कॉलबैक सिंटैक्स है, लेकिन क्या find
कॉलबैक को प्रदान करता है एक Cursor
, दस्तावेजों की एक सरणी नहीं। इसलिए यदि आप चाहते हैं कि आपका कॉलबैक दस्तावेज़ों की एक सरणी के रूप में परिणाम प्रदान करे, तो toArray
. पर कॉल करें उन्हें वापस करने के लिए कर्सर पर:
collection.find({'_id':o_id}, function(err, cursor){
cursor.toArray(callback);
db.close();
});
ध्यान दें कि आपके फ़ंक्शन के कॉलबैक को अभी भी एक err
provide प्रदान करने की आवश्यकता है पैरामीटर ताकि कॉलर को पता चले कि क्वेरी ने काम किया या नहीं।
2.x ड्राइवर अपडेट
find
अब कर्सर को कॉलबैक के माध्यम से प्रदान करने के बजाय लौटाता है, इसलिए सामान्य उपयोग को सरल बनाया जा सकता है:
collection.find({'_id': o_id}).toArray(function(err, results) {...});
या इस मामले में जहां एक ही दस्तावेज़ की अपेक्षा की जाती है, इसका उपयोग करना आसान है findOne
:
collection.findOne({'_id': o_id}, function(err, result) {...});