如何使用猫鼬express和angular从数组中删除特定对象

时间:2020-06-29 08:42:59

标签: angular express mongoose

我正在使用mongoose express nodjs和angular开发我的项目。 我将用户请求存储到特定的用户帐户中。我不知道如何从数组中删除特定对象。

这是我存储在数据库数组中的数据

_v
:1
requests
:
Array

    0
    :
    Object
        _id
        :ObjectId(5ece0bb3fdba2015bca0a052)
        bloodgroup
        :"A+"
        city
        :"g"
    1
    :
    Object
        _id
        :ObjectId(5ece0b6bfdba2015bca0a051)
        bloodgroup
        :"A+"
        city
        :"jj"
    2
    :
    Object
        _id
        :ObjectId(5ece0b6bfdba2015bca0a051)
        bloodgroup
        :"A+"
        city
        :"j
这是我如何删除

router.post('/delete', verifyToken, (req, res) => {
    let userData = req.body;
    const userId = req.userId;
    User.findByIdAndUpdate({_id: userId},{$pull: {requests: {_id: userData._id}}}, {multi:true} ,(error,user) => {
        if (error) {
            console.log(error)
       } else 
           if (!user) {
               res.status(401).send('user Does not exists')
           } else { 
             user.save()
              res.status(200).send(user)
           }
    })
})

这是我的共同点。

 onReject(event: Event) {
    const target = event.target as HTMLInputElement ;
    const val =  target.value ;
    const user_id = val;
    console.log(user_id);
   this.auth.deleteRequests(user_id)
    .subscribe(
       res=>{
         
       console.log(res)       },
      err => console.log(err)
     )
  }

请帮助我解决这个问题。预先感谢

1 个答案:

答案 0 :(得分:0)

将代码的{$pull: {requests: {_id: userData._id}}}部分更改为此:

{$pull: {requests: userData._id}},它将起作用。