2016-09-26 81 views

cevap

21

Veritabanı mantığı veri modeli içinde kapsüllü edilmelidir. Mongoose, bunu, yöntemleri ve statik yapmak için 2 yol sağlar. Statik Modelleri kendisine statik "sınıfı" yöntemleri ekler ise Yöntemleribelgeleri için bir örnek yöntemi ekler. Biz kuyruklu tüm hayvanları bulmak için hayvanın benzer türlerini bulmak için bir yöntem ve statik bir yöntem ekleyebilirsiniz

var AnimalSchema = mongoose.Schema({ 
 
    name: String, 
 
    type: String, 
 
    hasTail: Boolean 
 
}); 
 

 
module.exports = mongoose.model('Animal', AnimalSchema);

: Hayvan Modeli Aşağıdaki örnek Verilen

AnimalSchema.methods.findByType = function (cb) { 
 
    return this.model('Animal').find({ type: this.type }, cb); 
 
}; 
 

 
AnimalSchema.statics.findAnimalsWithATail = function (cb) { 
 
    Animal.find({ hasTail: true }, cb); 
 
};

var AnimalSchema = mongoose.Schema({ 
 
    name: String, 
 
    type: String, 
 
    hasTail: Boolean 
 
}); 
 

 
AnimalSchema.methods.findByType = function (cb) { 
 
    return this.model('Animal').find({ type: this.type }, cb); 
 
}; 
 

 
AnimalSchema.statics.findAnimalsWithATail = function (cb) { 
 
    Animal.find({ hasTail: true }, cb); 
 
}; 
 

 
module.exports = mongoose.model('Animal', AnimalSchema); 
 

 
// example usage: 
 

 
var dog = new Animal({ 
 
    name: 'Snoopy', 
 
    type: 'dog', 
 
    hasTail: true 
 
}); 
 

 
dog.findByType(function (err, dogs) { 
 
    console.log(dogs); 
 
}); 
 

 
Animal.findAnimalsWithATail(function (animals) { 
 
    console.log(animals); 
 
});

:

Burada yöntem ve statik için örnek kullanımı ile tam model