Javascript 在Mongoose中查找一个并参考其他模型进行更新不起作用

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

我有一个名为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()) },
  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就像你说的打字错误解决了这个问题。谢谢,伙计