我是MEAN堆栈的新手,最近完成了一个教程,并一直在努力进一步开发它。这是一个使用RESTful api更新mongo db的简单应用程序。现在我使用put语句更新我的集合中文档的某些部分。唯一的问题是当我尝试使用此put语句更新数组时,我得到500错误。这是我在 Server.js 文件中的put语句:
app.put('/users/:id', function (req, res) {
var id = req.params.id;
console.log(req.body.name);
db.users.findAndModify({
query: {_id: mongojs.ObjectId(id)},
update: {$set: {name: req.body.help.name, email: req.body.email, number: req.body.number}},
new: true}, function (err, doc) {
res.json(doc);
}
);
});
如果您发现body.email
和body.number
更新语句效果很好。但是我尝试制作一个非常简单的数组来测试该主题。在我的一个用户文档中,我有这个数组。
"help" : [
{
"name" : "test"
}
],
我想做的就是弄清楚如何更改数组中的值。 put语句非常适合更改mongo文档中的字符串而不是数组。我注意到req.body.string
是你访问它的方式所以我想我要做的就是添加它,所以在这种情况下req.body.help.name
。但是这不起作用,我得到的是我的控制台日志中的500错误。任何帮助将不胜感激!
答案 0 :(得分:0)
所以答案结果是我没有将我的$ set中的数组包含在findandmodify的更新部分中。以下是代码中应该是这样的: 更新:{$ set:{help:{name:req.body.help.name}}}