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