【发布时间】:2018-02-17 21:52:36
【问题描述】:
我正在尝试更新所有符合以下条件的文档。
出于某种原因,我在控制台中收到错误消息,提示 alerts.save 不是函数。
这就是我更新记录的方式。
我尝试更新多个文档的问题是什么?
router.route('/mark_as_read/:ownerId')
.put(function(req, res){
var alerts = new Alerts();
Alerts.find({owner_id: req.params.ownerId}, function(err, alerts){
if(err)
res.send(err);
alerts.viewed = true;
console.log('Alerts: ', alerts);
alerts.save(function(err){
if(err)
res.send(err);
res.json(alerts)
});
});
});
以下是我执行 get 时返回的数据示例:
{ _id: 59aed31e78fbbea611518ddf,
message: 'Hammer Hammer at hammer@example.com',
alert_type: 'Share',
owner_id: '59a6e66d5ab67150837d96a8',
__v: 0,
viewed: false,
date: 2017-09-05T16:38:54.437Z },
{ _id: 59aed6035fee3fa895045693,
message: 'Paul Pataa at paul@example.com',
alert_type: 'Share',
owner_id: '59a6e66d5ab67150837d96a8',
__v: 0,
viewed: false,
date: 2017-09-05T16:51:15.193Z },
{ _id: 59aedba6fec346aafae9121c,
message: 'Marky Mark at marks@example.com',
alert_type: 'Share',
owner_id: '59a6e66d5ab67150837d96a8',
__v: 0,
viewed: false,
date: 2017-09-05T17:15:18.876Z },
{ _id: 59aedc36fec346aafae91228,
message: 'Lilly Lap at sammy@example.com',
alert_type: 'Share',
owner_id: '59a6e66d5ab67150837d96a8',
__v: 0,
viewed: false,
date: 2017-09-05T17:17:42.951Z }
我尝试遍历警报数组,但这对我不起作用:
router.route('/mark_as_read/:ownerId')
.put(function(req, res){
var alerts = new Alerts();
Alerts.find({owner_id: req.params.ownerId}, function(err, alerts){
if(err)
res.send(err);
for(var i=0; i < alerts.length; i++){
alerts.viewed = true;
alerts[i].save(function(err){
if(err)
console.log('Error in updating an alert');
})
}
});
});
【问题讨论】:
标签: node.js mongodb express mongoose