javascript - 如何通过节点js中的索引更新带有数组的元素
问题描述
我想通过索引号更新元素。我在 Mongodb node.js 上有这样的数据:
{"_id" : ObjectId("5b533c33327d12098277c6a4"),
"name":["aa","bb","cc"],
"age":["45","50","40"],
"home":["dd","ee","ff"]}
我想更改姓名、年龄和家中每个元素的值。我试过这样,但它不起作用。
router.put("/forms/data/edit/:index/:id", function(req,res){
var i = req.params.index;
Datastored.findByIdAndUpdate(req.params.id,{$set:{
name[i]:req.body.name,
age[i]:req.body.age,
home[i]:req.body.home}},
function(err){
if(err){
console.log(err)
res.redirect("back");
}else{
console.log("data edited");
res.redirect("/seealldata");
}
});
});
我收到以下错误:
解析错误: Unexpected token [ " , on the line of code, name[i].req.body.name
解决方案
经过一番谷歌搜索,我找到了这个问题/答案。尝试以下操作:
router.put("/forms/data/edit/:index/:id", function(req,res){
var i = req.params.index;
Datastored.findByIdAndUpdate(req.params.id,{
$set:{
[`name.${i}`]: req.body.name,
[`age.${i}`]: req.body.age,
[`home.${i}`]: req.body.home
}},
function(err){
if(err){
console.log(err)
res.redirect("back");
}else{
console.log("data edited");
res.redirect("/seealldata");
}
});
});
推荐阅读
- c - Yacc Yytext 被覆盖?
- python - 为什么在使用递归反转列表时出现类型错误
- reactjs - 如何使用导入的常量
- xml - 避免在缺少“匹配”实体的情况下输出属性
- ruby-on-rails - 更新枚举字段后保存模型不成功
- ios - 如何在关闭视图swiftui时延迟创建动画
- amazon-web-services - lightsail 实例是否还包括 dbms?
- javascript - 类型错误:.json WEBPACK_IMPORTED_MODULE_2__.filter 不是函数
- assembly - 将局部变量与 16 字节边界对齐 (x86 asm)
- python - 使用 xlsxwriter 合并每隔一个单元格