Organizational Research By

Surprising Reserch 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
22 views



Related Hot Questions

1 Answer

0 votes
NULL
answered Sep 30, 2015 by dahiyabecomp

...