如何在猫鼬模型上添加自定义方法



在Mongoose中,我们可以向文档添加如下方法:

const userSchema = new mongoose.Schema({
balance: Number
})
userSchema.methods.withdrawBalance = function(amount){
const doc = this
doc.balance = doc.balance - amount
}

我们可以如下使用它:

const userDoc = UserModel.findById(ID_HERE);
userDoc.deductBalance(100); // -100$ USD
userDoc.save()

我希望能够在模型上做同样的事情,就像我在文档上做一样,我希望能够做这样的事情:

const userDoc = UserModel.findById(ID_HERE).myCustomMethod()

但是怎么做呢?

嗯,我不确定我是否理解正确,但让我们试试。

const Order = mongoose.model("Order", orderSchema);
Order.test = function(){
console.log("Here I am!");
}
(async () => {
const o = await Order.findOne({}).test();
});

最新更新