# Match all children items in an array

**URL:** <https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747>\
**Category:** Elasticsearch\
**Created:** [February 4, 2020, 8:58am UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747 "2020-02-04T08:58:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![akshaymaniyar](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/akshaymaniyar/32/45836_2.png) [@akshaymaniyar](https://discuss.elastic.co/u/akshaymaniyar)\
**Post date:** [February 4, 2020, 8:58am UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/1 "2020-02-04T08:58:15Z")

</div>

I have the below structure

```
Doc1:
        {
            "key1": "value1",
            "key2": [
                {
                    "subId": "id1",
                    "subKey1": "PASS"
                },
                {
                    "subId": "id2",
                    "subKey1": "PASS"
                }
            ]
        },
         
        Doc2:
        {
            "key1": "value2",
            "key2": [
                {
                    "subId": "id1",
                    "subKey1": "PASS"
                },
                {
                    "subId": "id2",
                    "subKey1": "FAIL"
                }
            ]
        }

```

I want to search for doc in which inside "key2.subKey": "PASS" for all children inside the array. So the query in this case should just return Doc1

---

<div class="post-metadata">

**Author:** ![itarch](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/itarch/32/61534_2.png) [@itarch](https://discuss.elastic.co/u/itarch)\
**Post date:** [February 4, 2020, 11:40am UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/2 "2020-02-04T11:40:54Z")

</div>

I dont know if I'm right, but this should meet your req

GET \<your\_index\>/\_search  
{  
"query": {  
"bool": {  
"must": [  
{"match": {  
"key2.subKey1": "PASS"  
}}  
],  
"must\_not": [  
{"match": {  
"key2.subKey1": "FAIL"  
}}  
]  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![gaurav.raj917](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gaurav.raj917/32/61998_2.png) [@gaurav.raj917](https://discuss.elastic.co/u/gaurav.raj917)\
**Post date:** [February 5, 2020, 6:40am UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/3 "2020-02-05T06:40:03Z")

</div>

Key2 has nested mapping. The above query won't work in this scenario.

---

<div class="post-metadata">

**Author:** ![akshaymaniyar](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/akshaymaniyar/32/45836_2.png) [@akshaymaniyar](https://discuss.elastic.co/u/akshaymaniyar)\
**Post date:** [February 10, 2020, 5:38am UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/4 "2020-02-10T05:38:39Z")

</div>

**bump**

---

<div class="post-metadata">

**Author:** ![rameshkr1994](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rameshkr1994/32/59029_2.png) [@rameshkr1994](https://discuss.elastic.co/u/rameshkr1994)\
**Post date:** [February 10, 2020, 11:43am UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/5 "2020-02-10T11:43:13Z")

</div>

> [@akshaymaniyar](#):
>
> bump

Hi @akshaymaniyar.

Please try this.

[Elastic docs](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html)

---

<div class="post-metadata">

**Author:** ![mkhludnev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mkhludnev/32/97857_2.png) [@mkhludnev](https://discuss.elastic.co/u/mkhludnev)\
**Post date:** [February 10, 2020, 8:16pm UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/6 "2020-02-10T20:16:31Z")

</div>

Just give you an idea. No actual syntax honored.

```
"bool" : { 
     "must_not" : { 
          "nested" : {
                   "path" : "something",
                   "query" : {
                               "bool" : { 
                                    // here you also might need to match all child docs as well
                                   "must_not" : { 
                                          "term" : { "subKey1": "PASS"}
                                     }
                                }
                    }
           }
      }
 }
```

---

<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:** [March 9, 2020, 8:16pm UTC](https://discuss.elastic.co/t/match-all-children-items-in-an-array/217747/7 "2020-03-09T20:16:37Z")

</div>

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