तरीके मॉडल की वर्तमान उदाहरण के साथ बातचीत करने के लिए उपयोग किया जाता है:
मेरे मन में कुछ इस तरह की है। उदाहरण:
var AnimalSchema = new Schema({
name: String
, type: String
});
// we want to use this on an instance of Animal
AnimalSchema.methods.findSimilarType = function findSimilarType (cb) {
return this.find({ type: this.type }, cb);
};
var Animal = mongoose.model('Animal', AnimalSchema);
var dog = new Animal({ name: 'Rover', type: 'dog' });
// dog is an instance of Animal
dog.findSimilarType(function (err, dogs) {
if (err) return ...
dogs.forEach(..);
})
स्टैटिक्स उपयोग किया जाता है जब आप एक उदाहरण के साथ बातचीत नहीं करना चाहती है, लेकिन ('रोवर' नामक सभी पशु के लिए उदाहरण के लिए खोज) मॉडल से संबंधित सामान है।
यदि आप किसी मॉडल (डीबी में) के उदाहरण को सम्मिलित/अपडेट करना चाहते हैं, तो methods
जाने का तरीका है। तुम सिर्फ बचाने के लिए की जरूरत है/अद्यतन सामान आप (पहले से ही नेवला में मौजूद) save
फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण:
var Animal = mongoose.model('Animal', AnimalSchema);
var dog = new Animal({ name: 'Rover', type: 'dog' });
dog.save(function(err) {
// we've saved the dog into the db here
if (err) throw err;
dog.name = "Spike";
dog.save(function(err) {
// we've updated the dog into the db here
if (err) throw err;
});
});
का चेक करते लेकिन मैं कैसे कर सकता है एक विधि के भीतर से dog.save() '? – Industrial
'this.save()', चूंकि 'यह'' कुत्ते ' – alessioalex
@alessioalex को संदर्भित करेगा - मुझे लगता है कि यह mongoose दस्तावेज़ों के उदाहरण के समान है, हालांकि वे इस प्रकार को पुनः निर्दिष्ट करते हैं: 'this this.model (' Animal ') .find ({प्रकार: this.type}, सीबी); 'मैं कभी नहीं समझ लिया है हम' मॉडल (उपयोग करने के लिए क्यों' पशु ') 'यहाँ, हम पशु स्कीमा के लिए इस विधि जोड़ रहे हैं के रूप में। संभवतः यह वैकल्पिक है - क्या आपको पता है कि यह दस्तावेज़ों में इस तरह क्यों लिखा गया है? – UpTheCreek