我是 MEAN 堆栈的新手,最近完成了一个教程并一直在尝试进一步开发它。这是一个使用 RESTful api 更新 mongo 数据库的简单应用程序。现在,我正在使用 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 错误。任何帮助将不胜感激!
最佳答案
所以最终的答案是我没有在我的 $set 中为 findandmodify 的更新部分包含数组。这是代码中的样子: 更新:{$set: {help: {name: req.body.help.name}}}
关于javascript - 无法使用 RESTful api put 更新 mongo 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30084185/