mongoose - model.update不工作

时间:2013-05-18 05:05:57

标签: node.js mongodb mongoose

当我的node.js应用收到某个POST请求时,我正在做一个简单的更新。这是我的代码:

app.post('/comment', function (req,res) {
    var params = req.body;
    BlogPost.update({"title": params.title}, {$push: { comments: {author : params.author, content: params.content, date: new Date().toUTCString()}}});
    res.redirect('back');
});

其中BlogPost是一个猫鼬模型。 (查询文档时此模型有效。)

现在的问题是,当我进行后续查询时,没有任何反应。例如,为具有“title”“aaa”的文档运行上面的代码(它应该将对象推送到数组“comments”,查询标题为“aaa”的文档会返回类似

的内容。
{ _id: 51954d4663aa986aa93a734f,
  title: 'aaa',

  comments: [] }

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您应该添加回调以获取错误消息。 我有一个类似的问题,只是添加回调,一切都工作正常,即使有一个空的回调。

尝试:

app.post('/comment', function (req,res) {
var params = req.body;
BlogPost.update({"title": params.title}, {$push: { comments: {author : params.author, content: params.content, date: new Date().toUTCString()}}},function(error){console.log(error);});
res.redirect('back');
});

答案 1 :(得分:0)

这是猫鼬的奇怪行为。我也有这个原因,因为不赞成使用update(),所以我改用了updateOne(),但它也仅在添加回调函数时有效。