【问题标题】:Trying to delete a doc Mongoose using findByIdAndDelete but im always getting back a null尝试使用 findByIdAndDelete 删除文档 Mongoose 但我总是返回 null
【发布时间】:2021-06-03 09:52:23
【问题描述】:

尝试使用 findByIdAndDelete 删除文档 Mongoose,但当我知道传递给函数的文档 ID 存在于 MongoDB 中时,我总是返回 null 我试过了: findByIdAndRemove findByIdAndDelete findOneAndDelete -> 使用下面的代码删除两个文档而不是一个!

async function deleteCourse(id)
{
    const result = await Course.findByIdAndDelete(id,(err, res) => {
        if (err){ 
            console.log(err) 
        } 
        else{ 
            console.log("Deleted course: ", res); 
        } 
    })


}


deleteCourse('5a68fdf95db93f6477053ddd')

【问题讨论】:

  • 你正在使用findByIdAndDelete方法的回调版本并且也在等待它;要么使用回调版本,要么不传递回调,等待调用findByIdAndDelete的结果。
  • 感谢 Yousaf,我所要做的就是删除 await 以使其与回调一起使用

标签: javascript mongodb mongoose async-await


【解决方案1】:

正如@Yousaf 所建议的,如果您使用异步/等待函数,则不需要回调函数。也可以使用 try/catch 来获得相同的行为。

async function deleteCourse(id)
{

  try {
    const result = await Course.findByIdAndDelete(id);
    console.log("Deleted course: ", result);
  } catch(err) {
    console.log(err) 
  }
}


deleteCourse('5a68fdf95db93f6477053ddd')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-08
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多