我正在尝试使用 mongoose 中间件递归地删除另一个对象数组中对该对象的引用(从 idtask
中删除引用)taskList
task
有问题的功能:
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)
任务对象:
设置对象: