2013-01-10 9 views
16

मान लें कि हम _id मान के आधार पर मोंगोडीबी से एक दस्तावेज़ खोज रहे हैं। निम्नलिखित में से कौन सा कोड कुशल है?Mongoose में Model.findOne() और Model.findById() के बीच क्या अंतर है?

  1. ModelObj.findById(IdValue).exec(callback);

  2. ModelObj.findOne({ '_id': IdValue}).exec(callback);

मुझे लगता है ModelObj.findById() कुशल है, लेकिन सहायक कारणों क्या कर रहे हैं या कैसे यह कुशल है?

उत्तर

33

findById केवल एक सुविधा फ़ंक्शन है जो आपको दिखाए गए findOne कॉल जैसा ही है।

यहाँ the source है:

Model.findById = function findById (id, fields, options, callback) { 
    return this.findOne({ _id: id }, fields, options, callback); 
}; 
+1

के तहत सटीक एक ही बात करता है यह अपने जवाब के रूप में के रूप में सरल है। यह जवाब पाने के लिए बहुत अच्छा है.धन्यवाद .. –

-1

का उपयोग करना .findOne डेटाबेस को अपने रिकॉर्ड्स को देखने के लिए प्रत्येक बीएसओ दस्तावेज़ को प्रासंगिक चर खोजने के लिए देखता है और फिर मूल्य की जांच करता है, अगर मोंगो आंतरिक रूप से अनुक्रमित _id फ़ील्ड की तलाश में जानता है तो उसे प्रत्येक दस्तावेज़ को देखना नहीं है

+1

JohnnyHK द्वारा बताया रूप में, यह हुड –

संबंधित मुद्दे