Node.js 在mongodb更新查询中连接变量
我正在尝试使用Mongodb从数组中更新特定字段。为此,我尝试使用以下代码:Node.js 在mongodb更新查询中连接变量,node.js,mongodb,express,mongoskin,Node.js,Mongodb,Express,Mongoskin,我正在尝试使用Mongodb从数组中更新特定字段。为此,我尝试使用以下代码: db.collection(CG).update( { _id : ObjectId(req.params.id) }, { $set: { "cg." + req.params.index + ".nom" : req.body.nom } }, function (err, result){ res.json(result
db.collection(CG).update(
{
_id : ObjectId(req.params.id)
},
{
$set: { "cg." + req.params.index + ".nom" : req.body.nom }
},
function (err, result){
res.json(result);
}
);
但是,这种方法无法运行。这一行出现了一个问题:
$set:{“cg.”+req.params.index+“.nom”:req.body.nom}
如果我将此行更改为:
$set:{“cg.0.nom”:req.body.nom}
它运行
只是想注意。。。通过这一行,我将访问具有以下结构的“cg”元素:
据我所知,有一些解决方案(使用投影)可以使用.find()
方法,但我无法找到或适应这种特定情况
欢迎提供任何提示/建议/新解决方案,谢谢。尝试以下方法:
var field = "cg." + req.params.index + ".nom"
db.collection(CG).update(
{
_id : ObjectId(req.params.id)
},
{
$set: { field : req.body.nom }
},
function (err, result){
res.json(result);
}
);
@BlakesSeven,你说得对!谢谢!:)这就是为什么会向您展示横幅,以确认链接的“问题/答案”对您有所帮助。这是一个很常见的JavaScript符号错误。JavaScript“stringifies”键,因此update语句的意思是
“$set”:{“field”:req.body.nom}
,而不是将变量内容插入到对象中。