Node.js Monggose/Angular/Node:route with deleteOne方法一直说对象已删除,但deletecount为零

Node.js Monggose/Angular/Node:route with deleteOne方法一直说对象已删除,但deletecount为零,node.js,angular,mongoose,mean-stack,Node.js,Angular,Mongoose,Mean Stack,我看过其他关于这个问题的帖子,但我无法调整他们的解决方案来解决我的问题:我有一个使用mongoose的小程序。当我尝试删除集合中存储的用户或其他对象时,会出现此问题。路由工作正常,我没有收到任何错误,但对象不会被删除,我也不明白。我已经一次又一次地重新安装了mongoose,尝试了其他方法,比如findbyianddelete,但是什么都没有……有人能帮我解决这个问题吗? 以下是相关代码: 模型文件: const mongoose = require('mongoose'); const mo

我看过其他关于这个问题的帖子,但我无法调整他们的解决方案来解决我的问题:我有一个使用mongoose的小程序。当我尝试删除集合中存储的用户或其他对象时,会出现此问题。路由工作正常,我没有收到任何错误,但对象不会被删除,我也不明白。我已经一次又一次地重新安装了mongoose,尝试了其他方法,比如
findbyianddelete
,但是什么都没有……有人能帮我解决这个问题吗? 以下是相关代码:

模型文件:

const mongoose = require('mongoose');

const movieSchema = mongoose.Schema({

  name: {
    type: String,
    index:true,
    required: true
  },
  rate: {
    type: String,
    required: true
  }
});

module.exports = mongoose.model('Movie', movieSchema);
模型路线:

router.delete("/:id", (req, res, next) => {
  Movie.deleteOne({
    _id: req.params._id
  }).then(result => {
    res.status(200).json({
      message: "Movie deleted!",
      movie:result
    });
  });
});
电影服务(角度)

电影组件

deleteMovie(id){

  this.movieService.deleteMovie(id).subscribe(data=>{
    console.log(data)
    this.movieService.getStoredMovies();
  })
}
HTML:



{{movie.name}


删除后来自后端的消息:

获取对象方法的日志


问题出在您的
模型路线中
特别是
\u id:req.params.\u id

根据你的路线

router.delete("/:id", (req, res, next) => { })
您正在接收
id
而不是
\u id

因此,您必须从如下参数中获取
id
\u id:req.params.id

你的最终结果是这样的

router.delete("/:id", (req, res, next) => {
  Movie.deleteOne({
    _id: req.params.id
  }).then(result => {
    res.status(200).json({
      message: "Movie deleted!",
      movie:result
    });
  });
});
<ul *ngFor="let movie of storedMovies | unique; let i=index">
              <li *ngIf="i<=10 " (click)="deleteMovie(movie._id)">
                {{movie.name}}
              </li>
            </ul>
更新

我还查看了您的
HTML
,发现您正在
(单击)
上传递整个
电影
对象。但是
删除电影(id)
只需要
id
,所以你必须像这样更新你的HTML

router.delete("/:id", (req, res, next) => {
  Movie.deleteOne({
    _id: req.params.id
  }).then(result => {
    res.status(200).json({
      message: "Movie deleted!",
      movie:result
    });
  });
});
<ul *ngFor="let movie of storedMovies | unique; let i=index">
              <li *ngIf="i<=10 " (click)="deleteMovie(movie._id)">
                {{movie.name}}
              </li>
            </ul>


{{movie.name}