update all elements in sub array based on _id

Viewed 33

I have this data in Mongo:

{
    "_id" : ObjectId("505fd43fdbed3dd93f0ae088"),
    "categoryName" : "Cat 1",
     "media" : {
        "logo" : "images (1).jpg",
        "pictures" : [ 
            {
                "file_name" : "Plr9_GA26JcA.png",
                "status" : false
            }, 
            {
                "file_name" : "images (1).jpg",
                "status" : false
            }, 
        ]
    }
},
{
    "_id" : ObjectId("505fd43fdbed3dd93f0ae089"),
    "categoryName" : "Cat 2",
     "media" : {
        "logo" : "images (1).jpg",
        "pictures" : [ 
            {
                "file_name" : "Plr9_GA26JcA.png",
                "status" : false
            }, 
            {
                "file_name" : "images (1).jpg",
                "status" : false
            }, 
        ]
    }
}

Now I want to update each picture status to false for id ObjectId("505fd43fdbed3dd93f0ae088")

Like:

{
    "_id" : ObjectId("505fd43fdbed3dd93f0ae088"),
    "categoryName" : "Cat 1",
     "media" : {
        "logo" : "images (1).jpg",
        "pictures" : [ 
            {
                "file_name" : "Plr9_GA26JcA.png",
                "status" : true
            }, 
            {
                "file_name" : "images (1).jpg",
                "status" : true
            }, 
        ]
    }
}

I have already tried with the following

db.services.update(

    // Criteria
    {
        '_id' : ObjectId("505fd43fdbed3dd93f0ae088"),
    },

    // Updates
    {
        $set : {
            'media.pictures.$.status': true
        }
    }
)

Thanks in advance for your help!

1 Answers
Related