# Nested document updation using painless script

**URL:** https://discuss.elastic.co/t/nested-document-updation-using-painless-script/122831
**Category:** Elasticsearch
**Created:** [March 7, 2018, 6:51am UTC](https://discuss.elastic.co/t/nested-document-updation-using-painless-script/122831 "2018-03-07T06:51:17Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![anoopvalluthadam](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/anoopvalluthadam/32/30286_2.png) [@anoopvalluthadam](https://discuss.elastic.co/u/anoopvalluthadam)
#### Post date: [March 7, 2018, 6:51am UTC](https://discuss.elastic.co/t/nested-document-updation-using-painless-script/122831/1 "2018-03-07T06:51:17Z")

</div>

```
POST test/b/1
{
    "name": "andrew",
    "b": [{"x":"c1", "y": 0}, {"x":"c2", "y": 0}]
}
GET test/b/1

POST test/b/1/_update
{
  "script": {
    "lang": "painless",
    "source": "Map item; for (int i=0;i<ctx._source.b.size();i++) { item=ctx._source.b[i]; if (item['x'] == x_id) { ctx._source.b[i] = newobj} }",
    "params": {
      "x_id": "c1",
      "newobj": {
        "x": "c1",
        "y": 4222
      }
    }
  }
}

```

is throwing an error

```
{
  "error": {
    "root_cause": [
      {
        "type": "remote_transport_exception",
        "reason": "[RiyoP2B][10.65.5.170:9300][indices:data/write/update[s]]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "failed to execute script",
    "caused_by": {
      "type": "script_exception",
      "reason": "compile error",
      "script_stack": [
        "... e.b[i]; if (item['x'] == x_id) { ctx._source.b[i] ...",
        " ^---- HERE"
      ],
      "script": "Map item; for (int i=0;i<ctx._source.b.size();i++) { item=ctx._source.b[i]; if (item['x'] == x_id) { ctx._source.b[i] = newobj} }",
      "lang": "painless",
      "caused_by": {
        "type": "illegal_argument_exception",
        "reason": "Variable [x_id] is not defined."
      }
    }
  },
  "status": 400
}

```

What is the mistake in this script

> ES version: 5.6.3

---

<div class="post-metadata">

### Author: ![Jack\_Conradson](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jack_conradson/32/47236_2.png) [@Jack\_Conradson](https://discuss.elastic.co/u/Jack_Conradson)
#### Post date: [March 9, 2018, 6:04pm UTC](https://discuss.elastic.co/t/nested-document-updation-using-painless-script/122831/2 "2018-03-09T18:04:15Z")

</div>

x\_id is part of the params map. Try doing params.x\_id

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [April 6, 2018, 6:04pm UTC](https://discuss.elastic.co/t/nested-document-updation-using-painless-script/122831/3 "2018-04-06T18:04:36Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
