【发布时间】:2014-08-03 05:54:15
【问题描述】:
我正在使用Drywall 创建一个网站。
我正在尝试将仪表板元素添加到管理站点的帐户部分。仪表板元素用于存储用户有权访问的仪表板数组(字符串)。
我已经成功地将“仪表板”添加到架构中并在其中存储数据。
问题来了:
我需要能够向数组中添加元素。代码目前的方式替换了数据库中dashboards 的内容。
我知道我可以使用$addToSet,但我不确定我该怎么做,因为fieldsToSet 变量作为单个对象发送到findByIdAndUpdate() 方法。
这是我的代码的 sn-p:
workflow.on('patchAccount', function() {
var fieldsToSet = {
name: {
first: req.body.first,
middle: req.body.middle,
last: req.body.last,
full: req.body.first +' '+ req.body.last
},
company: req.body.company,
phone: req.body.phone,
zip: req.body.zip,
search: [
req.body.dashboards,
req.body.first,
req.body.middle,
req.body.last,
req.body.company,
req.body.phone,
req.body.zip,
]
};
req.app.db.models.Account.findByIdAndUpdate(req.params.id, fieldsToSet, function(err, account) {
if (err) {
return workflow.emit('exception', err);
}
workflow.outcome.account = account;
return workflow.emit('response');
});
});
这是原始 file 的链接:(第 184-203 行)
谢谢!
【问题讨论】:
标签: javascript arrays node.js mongoose nodes