除了数十个内建的Mongoose模型方法,我们还可以增加一些自定义的方法。
比如,当我们实现自定义实例方法buy()后,就可以调用practicalNodeBook文档的buy()方法。
bookSchema.method({
buy: function(quantity, customer, callback){
var bookToPurchase = this;
// 创建一个购买订单和顾客发货单
return callback(results);
},
refund: function(customer, callback){
// 退款处理
return callback(results);
}
});
当我们没有或不需要一个特定的文档对象的时候,静态方法就很有用:
bookSchema.static({
getZeroInventoryReport: function(callback){
// 查找所有零库存的书籍
return callback(books);
},
getCountOfBooksById: function(bookId, callback){
//通过书籍ID查找读书的剩余数量
return callback(count);
}
})