Monggose / Angular / Node:具有deleteOne方法的路由不断说对象已删除,但deletecount为零

我已经看到了与此期杂志相关的其他文章,但是我无法适应他们的问题:我有一个使用猫鼬的小型MEAN应用。当我尝试删除存储在集合中的用户或其他对象时,会发生此问题。路由正常,我没有错误,但是对象没有被删除,我也不明白。我已经一遍又一遍地重新安装了猫鼬,尝试了其他方法,例如findByIdAndDelete,但是什么也没有...有人可以帮助解决这个问题吗? 这里是相关代码:

模型文件:

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:any){
  return this.http.delete(baseUrl + 'movie/' + id)
}

电影component.ts

deleteMovie(id){

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

HTML:

<ul *ngFor="let movie of storedmovies | unique; let i=index">
              <li *ngIf="i<=10 " (click)="deleteMovie(movie)">
                {{movie.name}}
              </li>
            </ul>

删除后来自后端的消息:

Monggose / Angular / Node:具有deleteOne方法的路由不断说对象已删除,但deletecount为零

获取对象方法的日志

Monggose / Angular / Node:具有deleteOne方法的路由不断说对象已删除,但deletecount为零

wxc3344 回答:Monggose / Angular / Node:具有deleteOne方法的路由不断说对象已删除,但deletecount为零

问题出现在您的Model Route中,特别是在_id: req.params._id

根据您的路线

router.delete("/:id",(req,res,next) => { })

您收到的是id而不是_id

因此,您必须从类似id的参数中获取_id: req.params.id

您的最终结果将如下所示

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

更新

我还查看了您的HTML,发现您正在movie上传递整个(click)对象。但是deleteMovie(id)只需要id,因此您必须像这样更新HTML

<ul *ngFor="let movie of storedMovies | unique; let i=index">
              <li *ngIf="i<=10 " (click)="deleteMovie(movie._id)">
                {{movie.name}}
              </li>
            </ul>
本文链接:https://www.f2er.com/2912479.html

大家都在问