我有以下mongoose架构:
{
name: String,
subArray: [
{
subName: String,
subNumber: Number
}
]
}
我已经在subArray中添加了对象,这些对象会自动分配"_id"
。在Node.js中,如何在subArray中通过"_id"
找到一个对象并将其删除?
答案 0 :(得分:7)
您可以与$pull
运营商一起进行猫鼬findOneAndUpdate
。所以像下面这样的东西可以工作(未经测试):
Model.findOneAndUpdate( {'subArray._id' : '55a19992474e7ded6b4ae2b0'} ,
{
$pull: { subArray: { _id: '55a19992474e7ded6b4ae2b0' }}
}
{new: true},
function(err, doc){
console.log(err,doc)
})
答案 1 :(得分:0)
上述代码段的小修正
ProductContact.findOneAndUpdate({'productRoles._id':req.params.product_role_id},
{
$pull: { productRoles: {_id:req.params.product_role_id }}
},{new:true},
function(err, productcontact) {
if(err)
res.send(err);res.json({message: 'Role successfully deleted.'});
})