statics
मॉडल पर परिभाषित विधियां हैं। methods
दस्तावेज़ (उदाहरण) पर परिभाषित हैं।
आप एक स्थिर . का उपयोग कर सकते हैं विधि जैसे Animal.findByName
:
const fido = await Animal.findByName('fido');
// fido => { name: 'fido', type: 'dog' }
और आप एक उदाहरण विधि . का उपयोग कर सकते हैं जैसे fido.findSimilarTypes
:
const dogs = await fido.findSimilarTypes();
// dogs => [ {name:'fido',type:'dog} , {name:'sheeba',type:'dog'} ]
लेकिन आप ऐसा नहीं करेंगे Animals.findSimilarTypes()
क्योंकि पशु एक मॉडल है, इसका कोई "प्रकार" नहीं है। findSimilarTypes
एक this.type
. की आवश्यकता है जो कि एनिमल्स मॉडल में मौजूद नहीं होगा, केवल एक दस्तावेज़ इंस्टेंस में वह गुण होगा, जैसा कि मॉडल में परिभाषित किया गया है।
इसी तरह आप fido.findByName
नहीं करेंगे क्योंकि findByName
सभी दस्तावेज़ों और fido
. के माध्यम से खोजने की आवश्यकता होगी बस a . है दस्तावेज़।
खैर, तकनीकी रूप से आप कर सकते हैं , क्योंकि उदाहरण के पास संग्रह तक पहुंच है (this.constructor
या this.model('Animal')
) लेकिन इसका कोई मतलब नहीं होगा (कम से कम इस मामले में) एक उदाहरण विधि है जो उदाहरण से किसी भी गुण का उपयोग नहीं करती है। (इसे इंगित करने के लिए @AaronDufour को धन्यवाद)