findByIdAndRemove获取状态404

时间:2019-06-10 17:54:07

标签: mongoose

我正在尝试使用_id删除记录,但是我从邮递员那里得到了状态404。哪里出问题了?

router.delete('/sale/delete/:id', function(req, res) {

    Sale.findByIdAndRemove({
            _id: req.params.id
        },
        function(err, respRaw) {
            if (err) {
                console.log(err)
            }
            res.status(204).json(respRaw)
        })
});

enter image description here

2 个答案:

答案 0 :(得分:1)

添加作为作者答案的补充:

findByIdAndRemove()findOneAndRemove()混淆,即参数。


findByIdAndRemove()

参数

    要查询的_id的
  • id«Object | Number | String»值
  • [选项]«对象»可选
  • [options.strict]«Boolean | String»覆盖架构的严格模式选项
  • [回调]«功能»

返回:

  • «查询»

通过文档的_id字段发出mongodb findAndModify remove命令。

  

findByIdAndRemove(id, ...)等效于findOneAndRemove({ _id: id }, ...)

找到匹配的文档,将其删除,然后将找到的文档(如果有)传递给回调。

如果传递了回调,则执行查询。


findOneAndRemove()

参数

  • 条件“对象”
  • [选项]«对象»可选
  • [options.strict]«Boolean | String»覆盖架构的严格模式选项
  • [回调]«功能»

返回:

  • «查询»

发出mongodb findAndModify删除命令。

找到匹配的文档,将其删除,然后将找到的文档(如果有)传递给回调。

如果传递了回调,则执行查询。

答案 1 :(得分:0)

我设法通过使用

解决了这个问题
Sale.findByIdAndRemove(id, options, function(err, respRaw) {}