Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从mongoose中的数组中按id删除对象_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 从mongoose中的数组中按id删除对象

Node.js 从mongoose中的数组中按id删除对象,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,所以这看起来很简单,但我似乎无法让它工作。我在mongodb中有一个文档,我正在使用mongoose。我需要做的就是按id查找用户,获取文档并从对象数组中删除一个指定的对象。结构如下: report:[ { asset_report_id:234, name:'somethign, }, { asset_report_id:23, name:'somethign, }, { asset_report_id:11

所以这看起来很简单,但我似乎无法让它工作。我在mongodb中有一个文档,我正在使用mongoose。我需要做的就是按id查找用户,获取文档并从对象数组中删除一个指定的对象。结构如下:

report:[
   {
     asset_report_id:234,
     name:'somethign,
    },
    {
     asset_report_id:23,
     name:'somethign,
    },
   {
     asset_report_id:111,
     name:'somethign,
    }
]
我试过这个:

User.findOne({_id: request.decodedTokenData.userId})
        .exec()
        .then(user=>{
          const result = user.reports.find( ({ asset_report_id }) => asset_report_id === assetID );
          console.log('IN FIND',result);
        })
        .catch(err=>console.log(err))
现在我确实得到了很好的结果,我可以删除,但是没有一种方法可以直接使用mongoose吗?更多关于纯mongo版本的行:

db.removeObject.update( {'_id':ObjectId("5c6ea036a0c51185aefbd14f")},
 {$pull:{"reports":{"asset_report_id":234}}},false,true);

因此,正确的解决方案是:

await User.updateOne( {'_id':ObjectId("5c6ea036a0c51185aefbd14f")},
   {$pull:{"report":{"asset_report_id":234}}},false,true)

由于数据模型包含“report”数组

您可以尝试:
{$pull:{“report”:{“asset\u report\u id:234}}}
?像这样
User.update({code id:request.decodedtokenada.userId},{$pull:{“reports”:{“asset\u report\u id:234}}})如果语法错误,请更正我的Thanksys,但是更改reports->report,因为示例数据的数组不会以“s”结尾。谢谢!虽然它应该使用
updateOne
update不推荐使用:)您也可以在下面回答这个问题,因为您帮助了我,所以我会接受它。