Organizational Research By

Surprising Reserch Topic

Experts Most Trusted Topic


update an item in an array that is in an array


update an item in an array that is in an array  using -'mongodb'

I have a document in a mongodb collection like this :

{
    sessions : [
        {
            issues : [
                {
                    id : "6e184c73-2926-46e9-a6fd-357b55986a28",
                    text : "some text"
                },   
                {
                    id : "588f4547-3169-4c39-ab94-8c77a02a1774",
                    text : "other text"
                }
            ]
        }
    ]
}


And I want to update the issue with the id 588f4547-3169-4c39-ab94-8c77a02a1774 in the first session.

The problem is that I only know that it's the first session and the issue id (NOT the index of the issue !)

So I try something like this :

db.mycollection.update({ "sessions.0.issues.id" : "588f4547-3169-4c39-ab94-8c77a02a1774"},
                       { $set: { "sessions.0.issues.$.text" : "a new text" }})


But I got the following result :

WriteResult({
    "nMatched" : 0,
    "nUpserted" : 0,
    "nModified" : 0,
    "writeError" : {
        "code" : 16837,
        "errmsg" : "The positional operator did not find the match needed from the query. Unexpanded update: sessions.0.issues.$.text"
    }


How can I do this ?

Thanks for help.
    

asked Sep 30, 2015 by deepak07.s
0 votes
21 views



Related Hot Questions



Walkin Jobs Opening



Government Jobs Opening


...