var animalSchema = new Schema({ name: String, type: String });
animalSchema.methods.findSimilarTypes = function(cb) {
return this.model('Animal').find({ type: this.type }, cb);
};
调用:
var Animal = mongoose.model('Animal', animalSchema);
var dog = new Animal({ type: 'dog' });
dog.findSimilarTypes(function(err, dogs) {
console.log(dogs); // woof
});
这段return this.model('Animal').find({ type: this.type }, cb);
这里有两个this,我理解的是这个this是animalSchema,但是后面的type: this.type
。这个type分明是dog这个实例。
有些疑惑,请教下。