首页 > 解决方案 > MongoDB/Express API 不更新条目但返回 200

问题描述

我目前正在努力解决我的 React Web 应用程序中的一个问题,该问题不允许我更新 Mongo 数据库中的条目。我发布新文档并轻松获取所有条目,但是当我尝试更新其中的一部分时,我收到 200 响应,但文档从未更新。这是我的反应应用程序的电话:

fetch(API + this.state.project.pin, {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: updatedFunctions
})

以及对应的快递代码

 app.post('/:pin', (req, res) => {

  db.collection('projects').update({pin:req.params}, {$set: {functions:req.body}}, function(err, count, result) {
    if (err) return console.log(err)
    console.log('saved to database')
    res.redirect('/')
  })
})

有谁知道这是错误的方向发送到哪里?根据我的逻辑,它应该将文档中的函数字段替换为具有“updatedFunctions”对象的匹配引脚。

标签: node.jsmongodbreactjsexpress

解决方案


您的搜索条件似乎错误:

db.collection('projects').update({pin: req.params.pin}, [...]

pin您的版本将在键中搜索对象。这现在搜索pin键中的标量/字符串。


推荐阅读