我正在使用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)
)
}
请帮助我解决这个问题。预先感谢
答案 0 :(得分:0)
将代码的{$pull: {requests: {_id: userData._id}}}
部分更改为此:
{$pull: {requests: userData._id}}
,它将起作用。