Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从另一个集合中推送ObjectId?蒙哥达_Node.js_Angularjs_Mongodb - Fatal编程技术网

Node.js 如何从另一个集合中推送ObjectId?蒙哥达

Node.js 如何从另一个集合中推送ObjectId?蒙哥达,node.js,angularjs,mongodb,Node.js,Angularjs,Mongodb,我在产品中保存每个更新的记录,所以我开始使用$push在我的字段“historial”中创建新的子文档。这一切都很好,但当我从另一个集合传递ObjectId时,我遇到了一个问题。我不知道为什么我的“categoria”字段被作为字符串而不是ObjectId传递。。。我注意到当我试着用angular打印这些数据时,我调试了它,它不是一个对象 产品型号: historial: [ { categoria: { type:mongoose.Schema.Object

我在产品中保存每个更新的记录,所以我开始使用$push在我的字段“historial”中创建新的子文档。这一切都很好,但当我从另一个集合传递ObjectId时,我遇到了一个问题。我不知道为什么我的“categoria”字段被作为字符串而不是ObjectId传递。。。我注意到当我试着用angular打印这些数据时,我调试了它,它不是一个对象

产品型号:

historial: [
    {
      categoria: {
        type:mongoose.Schema.ObjectId,
        ref:"categorias"
      }
    }
  ]
产品控制器(更新功能):

actualizar: async function (req, res, next) {
    try {
      const categoria = await categoriasModel.findByIdAndValidate(req.body.categoria);
      if(categoria.error){
        res.json(categoria);
        return;
      }
      console.log(req.params.id, req.body);
      const document = await productosModel.updateOne({ _id: req.params.id }, {
       precio:req.body.precio,
       stock:req.body.stock,
       categoria:req.body.categoria,
       fechaAct:req.body.fechaAct })

      const historial = await productosModel.updateOne({ _id: req.params.id}, {
        $push: {
          historial: {
            precio:req.body.precio,
            stock:req.body.stock,
            categoria:req.body.categoria,
            fechaAct:req.body.fechaAct
          }
        }
      })

      res.json({document, mensaje: "Actualizado con éxito", estado: "Ok"});
    } catch (e) {
      console.log(e);
      res.status(200).json({mensaje:"Revise los campos", estado: "Error"})
    }
  }