Javascript 在Mongoose中查找一个并参考其他模型进行更新不起作用
我有一个名为OrderModel的模型,它还参考了其他模型Javascript 在Mongoose中查找一个并参考其他模型进行更新不起作用,javascript,node.js,mongodb,mongoose,mongoose-schema,Javascript,Node.js,Mongodb,Mongoose,Mongoose Schema,我有一个名为OrderModel的模型,它还参考了其他模型 const orderSchema = new Schema({ _id: Schema.Types.ObjectId, address: { type: addressSchema, required: false }, items: [{ type: Schema.Types.ObjectId, ref: 'Items' }], date: { type: Date, default: moment(new Date
const orderSchema = new Schema({
_id: Schema.Types.ObjectId,
address: { type: addressSchema, required: false },
items: [{ type: Schema.Types.ObjectId, ref: 'Items' }],
date: { type: Date, default: moment(new Date()) },
user: { type: Schema.Types.ObjectId, ref: 'Users' },
is_completed: { type: Boolean, required: true, default: false },
is_canceled: { type: Boolean, required: true, default: false }
});
当我想用补丁更新这个模型时,它给了我一个错误
CastError: Cast to [ObjectId] failed for value "["5f0c9493f833e23a0028bd31,5f0c9429f833e23a0028bd2f"]" at path "items"
下面是我在代码中的实现方式
router.patch('/order', (req, res) => {
const query = { _id: req.body._id };
const _token = req.headers.authorization;
let data = req.body;
jwt.verify(_token, process.env.AUTH_TOKEN_KEY, (err, decoded) => {
console.log(query);
if (err) {
res.json({ message: 'Token Invalid'.err });
} else {
OrderModel.findOneAndUpdate(query, data, { new: true }, (err, doc) => {
console.log(doc,query);
if (doc) {
return res.json({ message: 'Succesfully saved', data: doc });
}
return res.json({ message: `No order found for id ${req.body._id}` });
});
}
})
})
我有两个项目作为一个数组,从前端发送
{
"_id": "5f8f1b7b29cbed4a8495d646",
"items":"5f0c9493f833e23a0028bd31,5f0c9429f833e23a0028bd2f",
"user":"5f06060110b7881ac0244005",
"address":{
"line_1": "Address line 1",
"line_2": "Address line 1",
"city": "Los Angeles",
"state": "California",
"pin": "90210"
},
"is_completed": false,
"is_canceled": false
}
我在这里做错了什么?我不知道这是否是一个输入错误,但前端应该发送
[“5f0c9493f833e23a0028bd31”,“5f0c9429f833e23a0028bd2f”]
这是一个输入错误。更正了。你的要求具体是什么?用请求更新了问题body@BiswaBhusan就像你说的打字错误解决了这个问题。谢谢,伙计