यह सही कॉलबैक सिंटैक्स है, लेकिन क्या 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) {...});