1 回答

TA贡献1770条经验 获得超3个赞
你可以试试,
let index1 = 0;
let index2 = 0;
let set = {
["portfolio."+index1+".nodes."+index2+".node_name"]: req.body.node_name
};
update_node.updateOne(
{
_id: ObjectID(req.body.userid),
"portfolio.nodes.node_id": ObjectID(req.body.nodeid)
},
{ $set: set }
)
.then(function (doc) { res.send(doc); });
关于您的查询的结论,您不能使用多个$
位置运算符,但可以同时使用单个位置运算符和arrayFilters ,
update_node.update(
{
_id: ObjectID(req.body.userid),
"portfolio.nodes.node_id": ObjectID(req.body.nodeid)
},
{
$set: {
"portfolio.$.nodes.$[n].node_name": req.body.node_name
}
},
{
arrayFilters: [
{ "n.node_id": ObjectID(req.body.nodeid) }
]
}
)
.then(function (doc) { res.send(doc); });
添加回答
举报