atarno  
                
                  
                    February 29, 2016,  4:01pm
                   
                  1 
               
             
            
              hi,
i have a document with the following structure:
`{
	"accountId": "4578fce6-1fa9-4d87-892e-edfdca677837",
	"created": "2016-02-24T10:54:49.427+02:00",
	"versions": [{
		"name": "0.0.1",
		"lastUpdate": "2015-12-04T18:04:49.146+02:00",
		"contributors": [{
			"name": "john doe",
			"email": "jd@example.com"
		}]
	}, {
		"name": "0.1.2",
		"lastUpdate": "2016-02-24T10:54:49.427+02:00",
		"contributors": [{
			"name": "dan smith",
			"email": "ds@example.com"
		}, {
			"name": "ann willis",
			"email": "aw@example.com"
		}]
	}]
}`
i need to remove elements from “contributors” array by email, something like
UPDATE bucket1 USE KEYS “key1234” UNSET e FOR e IN versions.contributors WHEN e.email="aw@example.com " END;
 
this of course doesn’t work. i tried to play with UNNEST in attempt to access the array inside array, but with no luck.
any thoughts on how this can be done, if at all?
thanks!
             
            
              
            
           
          
            
            
              Hi, you need to construct the new array instead:
UPDATE bucket1 USE KEYS "key1234"
SET versions = ARRAY ( ARRAY c FOR c IN v.contributors WHEN c.email <> "aw@example.com" END ) FOR v IN versions END; 
            
              
            
           
          
            
              
                atarno  
              
                  
                    March 1, 2016,  8:53am
                   
                  3 
               
             
            
              hi geraldss,
thanks for your prompt response.
{
        "accountId": "4578fce6-1fa9-4d87-892e-edfdca677837",
        "created": "2016-02-24T10:54:49.427+02:00",
        "versions": [
            [
                {
                    "email": "jd@example.com",
                    "name": "john doe"
                }
            ],
            [
                {
                    "email": "ds@example.com",
                    "name": "dan smith"
                }
            ]
        ]
}
as you see, contributors array replaces the entire versions array now, so that there are no “contributoes”, “name” etc elements anymore. i tried to play with this but i’m still missing something so i failed to make it work.
thanks again
             
            
              
            
           
          
            
            
              We are getting close.
UPDATE bucket1 USE KEYS "key1234"
SET versions = ARRAY {"name":v.name, "lastUpdate":v.lastUpdate, "contributors": ARRAY c FOR c IN v.contributors WHEN c.email != "aw@example.com" END } FOR v IN versions END;