如何在Mongoose中删除其对象ID的嵌套数组对象值?

时间:2017-02-10 05:14:10

标签: node.js mongodb mongoose

我需要从下面的mongodb数据库中删除url,其中id在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")
       }]
    }

任何人都可以帮助我,谢谢你提前......

1 个答案:

答案 0 :(得分:1)

在猫鼬中,你可以这样做 -

CollectionInstance.findByIdAndUpdate(documentId, {
    $pull: {
        filename: {_id: urlId}
    }
}, {new: true});

documentId我的意思是589b043abc2f5a467c13303burlId我的意思是589b043abc2f5a467c13303c在上面的示例代码中。

我们在此处所做的是通过其_id查找集合中的特定文档,然后将filename数组中的特定文档从_id拉出来。

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