javascript - 无法使用 RESTful api put 更新 mongo 数组

标签 javascript angularjs node.js mongodb express

我是 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.emailbody.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/

相关文章:

javascript - 仅当 div 包含 2 个特定 div 时才单击

javascript - 对 ng-model 使用 $index

mysql - npm 包中的日期类型转换?

javascript - ES6 解构的 promise ?

javascript - 图像描述网站

javascript - 如何在html中导入Amplitude js

javascript - 如何使用数组将图像放入缩略图列表 Ionic 中?

angularjs - Angularfire、firebase JSON Web token - 如何从 token 访问身份验证数据?

angularjs - 为什么无效的表格一开始是有效的,然后又是无效的?

javascript - Node.js 抛出 er 未处理的错误事件