gpt4 book ai didi

node.js - 即使在转换为 ObjectId 后,转换为 ObjectId 的值也失败

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:10 28 4
gpt4 key购买 nike

以下代码从供应商集合中的员工数组中提取员工

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

Vendor Schema

name: {
type: String
},
employee: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Employee'
}],
created_by: {
type: String
},
updated_by: {
type: String
},

最佳答案

仅查看错误消息,更新函数的第一个参数似乎应该是 ObjectId,而不是形状如下的数据:

{ employee:ObjectId }

因此,当您尝试将上述对象转换为 ObjectId 时,会出现 super 有用的错误:

error: "Cast to ObjectId failed for value "{ employee: 5c80c16e0c253823fc44332a }" at path "_id" for model "Vendor""

关于node.js - 即使在转换为 ObjectId 后,转换为 ObjectId 的值也失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55142463/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com