如何使用mongoose在同一模型中的另一个方法内调用schema方法

cetgtptt  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(141)

我有一个名为“Notification”的模型,它有两个方法。我想在一个方法内调用另一个方法,并使用mongoose查询同一个模型。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const NotificationSchema = new Schema({
    code: { type: 'string', required: true, unique: true },
    name: { type: 'string', required: true }
}, collection : "notification");

NotificationSchema.methods.MethodA = async () => {
   // querying the same model
   let query = await this.find({"code" : "abc"}).lean();
   this.MethodB(); 
};

NotificationSchema.methods.MethodB = () => {
   console.log("this is methodB");
};

module.exports = mongoose.model("Notification", NotificationSchema);

现在,不能查询同一个模型,并且在methodA中调用methodB会引发错误

this.methodB is not a function
d7v8vwbk

d7v8vwbk1#

你能试着用好的老函数定义代替es6箭头函数定义吗?

NotificationSchema.methods.MethodA = async function() {
   // querying the same model
   let query = await this.find({"code" : "abc"}).lean();
   this.MethodB(); 
};

NotificationSchema.methods.MethodB = function() {
   console.log("this is methodB");
};

相关问题