在猫鼬中删除数组内的对象

时间:2018-08-22 07:11:50

标签: node.js mongodb mongoose pull unset

我正试图删除猫鼬中的对象。

{
    "_id" : ObjectId("5b62c772efedb6bd3f0c983a"),
    "projectID" : ObjectId("0000000050e62416d0d75837"),
    "__v" : 0,
    "clientID" : ObjectId("00000000996b902b7c3f5efa"),
    "inspection_data" : [ 
        {
            "pdf" : null,
            "published" : "N",
            "submissionTime" : ISODate("2018-08-02T08:57:08.532Z"),
            "userID" : ObjectId("00000000cac68e3bc04643f7"),
            "insSummary" : "inspected areas",
            "insName" : "Infotech",
            "_id" : ObjectId("5b62c772fa02622a18655e7b"),
            "published_date" : ISODate("2018-08-02T08:57:22.041Z"),
            "locationAspects" : [ 
                {
                    "aspectname" : "Ground floor",
                    "_id" : ObjectId("5b62c772fa02622a18655e80"),
                    "comments" : [ 
                        {
                            "_id" : ObjectId("5b62c772fa02622a18655e81"),
                            "images" : [ 
                                {
                                    "path" : "/uploads/inspection/00000000996b902b7c3f5efa/images/1533200242005-IpjLKH4XFWNEcHXa.png",
                                    "img_name" : "1533200242005-IpjLKH4XFWNEcHXa.png",
                                    "title" : "Fan",
                                    "id" : "1",
                                "_id" :ObjectId("5b7bd0890394a62354a672cd")"
                                }, 
                                {
                                    "path" : "/uploads/inspection/00000000996b902b7c3f5efa/images/1533200242008-YN8IlA5yrMn3cBnn.png",
                                    "img_name" : "1533200242008-YN8IlA5yrMn3cBnn.png",
                                    "title" : "Box",
                                    "id" : "2",
                                "_id" :ObjectId("5b7bd0890394a62354a672ce")"

                                }
                            ],
                            "comment" : [ 
                                "comment4"
                            ],
                            "recommendation" : ""
                        }
                    ]
                }]
}

现在我要从总对象中删除它。

我尝试了以下代码:

已更新:

检查此猫鼬查询:

mongo.inspection.update({"projectID" : mongoose.Types.ObjectId(req.body.projId) },
        { $unset: 
            { 'inspection_data.$[e1].locationAspects.$[e2].comments.$[e3].images': { _id : mongoose.Types.ObjectId(req.body.imgid) } } },
          { "arrayFilters": [
            { "e1._id": mongoose.Types.ObjectId(req.body.InspId)},
            { "e2._id": mongoose.Types.ObjectId(req.body.aspectId)},
            { "e3._id": mongoose.Types.ObjectId(req.body.commentId)},
            // { "e4.id": imgid } 
          ]},
          function(err,response){
              if(err){
                  console.log(err)
              }
              else{
                console.log("ok")

              }
            })

在控制台上一切正常,但是我的图像对象没有被移除,我也尝试了$ pull。如何删除Array中的对象。

0 个答案:

没有答案