【发布时间】:2020-11-25 11:57:23
【问题描述】:
我正在通过两个硬编码索引($set 中的 0 和 0)更新文档,它工作得很好。
var result = db.collection('users', function (err, update_node) {
update_node
.updateOne(
{
_id: ObjectID(req.body.userid),
"portfolio.nodes.node_id": ObjectID(req.body.nodeid)
},
{
$set: {
"portfolio.0.nodes.0.node_name": req.body.node_name
}
}
)
.then(function (doc) {
res.send(doc);
});
});
如何在 $set 中使用 index1 和 index2?
const index1 = 0;
const index2 = 0;
var result = db.collection('users', function (err, update_node) {
update_node
.updateOne(
{
_id: ObjectID(req.body.userid),
"portfolio.nodes.node_id": ObjectID(req.body.nodeid)
},
{
$set: {
'portfolio.index1.nodes.index2.node_name': req.body.node_name
}
}
)
.then(function (doc) {
res.send(doc);
});
});
我也尝试过位置运算符:
'portfolio.$.nodes.$.node_name': req.body.node_name
但似乎没有办法在 MongoDB 中使用多个位置运算符。 非常感谢。
【问题讨论】:
-
[portfolio.index1.nodes.index2.node_name]: req.body.node_name
标签: javascript node.js mongodb object backend