我试图用新字段返回一个json,而不是已经在其中的字段。json的结构如下:
objJson={
istructor_id:"12345",
student_id:"333",
date: "2022-10-5"
}我想增加两个新字段:
istructor_name:"john"
istructor_surname:"west"我试过这样的方法:
objJson['istructor_name']= "john";
objJson['istructor_surname']= "west";当我编写代码: console.log(objJson.istructor_name) //output: john时,它看起来很有效,但是如果我尝试:
console.log(objJson);
//产出:
{
istructor_id:"12345",
student_id:"333",
date: "2022-10-5"
}编辑:我正在处理的JSON由objJson=await model.find().exec()返回
所有代码:
function posizione_dati_istruttore(istructos_id,istructors_data){
for(let i=0;i<istructors_data.length;i++){
if(istructors_data[i]._id.toString()===istructor_id)
return i;
}
return -1;
}
router.get('/mieGuide',async(req,res)=>{
var student_id=req.query.my_id;
var drivings=await Prenotations.find({student_id:student_id},{student_id:0}).exec();
var istructors_ids=[];
for(let i=0;i<drivings.length;i++){
istructors_ids.push(drivings[i].istructor_id);
}
const istructors_data= await Istructors.find({_id: {$in: istructors_ids}},{_id:1,name:1,surname:1}).exec()
var pos=0
for (let i=0; i < drivings.length; i++){
pos=posizione_dati_istruttore(drivings[i].istructor_id,istructors_data);
if(pos<0){
console.log("error");
res.status(400).json({err: "error"});
}
drivings[i]['istructor_name']= istructors_data[pos].name;
drivings[i]['istructor_surname']= istructors_data[pos].surname;
}
console.log(drivings);
res.status(200).send();
})发布于 2022-05-15 12:24:21
你所做的不应该引起任何问题,并且得到你期望的输出,
返回一个带有新字段的新json onbject,并使用spread运算符(.)保留旧的田地。
喜欢
return {istructor_name:"john",istructor_surname:"west",...objJson}https://stackoverflow.com/questions/72248202
复制相似问题