0

我正在尝试使用 mongoose 中间件递归地删除另一个对象数组中对该对象的引用(从 idtask中删除引用)taskListtask

有问题的功能:

TaskSchema.pre('deleteOne', function(next) {
    console.log(this)
    const task: any = this
    this.model('Set').deleteMany({ $pullAll: { taskList: Types.ObjectId(task.id.toString()) } }, next)
})

这会引发 ObjectParameterError:Document() 的参数“obj”在被调用时必须是一个对象

const task = await this.taskSchema.deleteOne({ _id: id })

进一步的问题是,在最后一行this.model=> 我没有在任何地方使用模型,因为我没有声明我使用的模型:

export type TaskDocument = Task & Document
export const TaskSchema = SchemaFactory.createForClass(Task)

任务对象:

在此处输入图像描述

设置对象:

在此处输入图像描述

4

0 回答 0