遵循以下代码从Vendor集合的employee Array中拉动员工
await new VendorManager()
.update(
{ employee: mongoose.Types.ObjectId(id) },
{ $pull: { employee: mongoose.Types.ObjectId(id) } }
);
字符串已转换为
**mongoose.Types.ObjectId**
但仍然出现错误error: "Cast to ObjectId failed for value "{ employee: 5c80c16e0c253823fc44332a }" at path "_id" for model "Vendor""
我已经测试过更新功能
mongoose.Types.ObjectId.isValid(id)
它也返回
true
。供应商模式
name: {
type: String
},
employee: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Employee'
}],
created_by: {
type: String
},
updated_by: {
type: String
},
最佳答案
仅查看错误消息,似乎更新函数的第一个参数应该是一个ObjectId,而不是像这样的数据:
{ employee:ObjectId }
因此,当您尝试将上述对象转换为ObjectId时,将出现超级有用的错误:
error: "Cast to ObjectId failed for value "{ employee: 5c80c16e0c253823fc44332a }" at path "_id" for model "Vendor""