Node.js 如何删除Mongoose中对象ID为的嵌套数组对象值?

Node.js 如何删除Mongoose中对象ID为的嵌套数组对象值?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我需要用url对象中的id从下面的mongodb数据库中删除url,然后需要剩余的数据作为结果 我的mongodb收藏包含以下内容: { "_id" : ObjectId("589b043abc2f5a467c13303b"), "user_id" : ObjectId("5874c174c813822341cb59a7"), "filename" : [ { "url" : "images/product_images

我需要用url对象中的id从下面的mongodb数据库中删除url,然后需要剩余的数据作为结果

我的mongodb收藏包含以下内容:

    {
      "_id" : ObjectId("589b043abc2f5a467c13303b"),
      "user_id" : ObjectId("5874c174c813822341cb59a7"),
      "filename" : [
       {
         "url" : "images/product_images/file-1486554170465.jpeg",
         "_id" : ObjectId("589b043abc2f5a467c13303c")
       },
       {
         "url" : "images/product_images/file-1486554306440.jpeg",
         "_id" : ObjectId("589b04c2bc2f5a467c13303f")
       }]
    }

有人能帮我吗,提前谢谢。

在猫鼬,你可以这样做-

CollectionInstance.findByIdAndUpdate(documentId, {
    $pull: {
        filename: {_id: urlId}
    }
}, {new: true});
通过
documentId
我的意思是
589b043abc2f5a467c13303b
urlId
我的意思是
589b043abc2f5a467c13303c

我们在这里所做的是通过其
\u id
查找集合中的特定文档,然后通过其
\u id
文件名
数组中提取特定文档


{new:true}
选项告诉Mongo返回更新的文档。默认情况下,此值为false,Mongo返回更新前的文档状态。

您可以使用Mongoose中的
选择(['field1','field2'])
。或者您可以使用Lodash库中的
.pick()
.omit()
进行一些后处理。获取文档需要哪些信息?您是否有文档的_id以及要删除的文件名的_id?我有用户id、url id和整个集合id,我需要删除url。'new_add_schema.findByIdAndUpdate(“589d64e9e4aee71251c56941”,{$pull:{filename:{u id:”“589d6630866a0c1429f7e96a”}},{new:true},函数(req,vft){console.log(vft)},'我尝试了上面的方法,但没有删除对象(url和id)哦,现在一切正常,三天后我得到了这个结果。谢谢!!非常感谢乔特曼·辛格