# "must" condition with array

**URL:** https://discuss.elastic.co/t/must-condition-with-array/61320
**Category:** Elasticsearch
**Created:** [September 23, 2016, 1:22am UTC](https://discuss.elastic.co/t/must-condition-with-array/61320 "2016-09-23T01:22:41Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![metaphoricwords](https://avatars.discourse-cdn.com/v4/letter/m/ecccb3/32.png) [@metaphoricwords](https://discuss.elastic.co/u/metaphoricwords)
#### Post date: [September 23, 2016, 1:22am UTC](https://discuss.elastic.co/t/must-condition-with-array/61320/1 "2016-09-23T01:22:41Z")

</div>

Hi all,

I have the following data:

```
{
  "name": "A",
  "data": [
    {"field1": "foo", "field2": "foo"},
    {"field1": "bar", "field2": "bar"}
  ]
}
{
  "name": "B",
  "data": [
    {"field1": "foo", "field2": "bar"},
    {"field1": "bar", "field2": "foo"}
  ]
}

```

field1 is fixed and field2 is variable.  
I want "A", so I created the following query:

```
{
  "bool": {
    "must": [
      "term": {
        "field1": "foo"
      },
      "query_string": {
        "query": "foo",
        "fields": ["field2"]
      }
    ]
  }
}

```

As a result, I got both "A" and "B" by this query.  
I think it's because "field1" and "field2" are not evaluated at once.  
How can I get only "A"?

Elasticsearch version 1.7

Thanks in advance.

---

<div class="post-metadata">

### Author: ![Joshua\_Rich](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/joshua_rich/32/44953_2.png) [@Joshua\_Rich](https://discuss.elastic.co/u/Joshua_Rich)
#### Post date: [September 23, 2016, 1:46am UTC](https://discuss.elastic.co/t/must-condition-with-array/61320/2 "2016-09-23T01:46:57Z")

</div>

You can't query array elements separately and likewise you can't get back just one element of an array. You may want to look into remodeling your data as the [nested type](https://www.elastic.co/guide/en/elasticsearch/reference/1.7/mapping-nested-type.html) which may provide better flexibility to do what you want.

---

<div class="post-metadata">

### Author: ![metaphoricwords](https://avatars.discourse-cdn.com/v4/letter/m/ecccb3/32.png) [@metaphoricwords](https://discuss.elastic.co/u/metaphoricwords)
#### Post date: [September 23, 2016, 2:54am UTC](https://discuss.elastic.co/t/must-condition-with-array/61320/3 "2016-09-23T02:54:38Z")

</div>

Thanks, Joshua.  
I'm looking into it.

---

<div class="post-metadata">

### Author: ![Ravi\_Shanker\_Reddy](https://avatars.discourse-cdn.com/v4/letter/r/a5b964/32.png) [@Ravi\_Shanker\_Reddy](https://discuss.elastic.co/u/Ravi_Shanker_Reddy)
#### Post date: [September 23, 2016, 3:45am UTC](https://discuss.elastic.co/t/must-condition-with-array/61320/4 "2016-09-23T03:45:06Z")

</div>

If it is possible try to upgrade your ES version. You are using very low versions. ES 2.4.0 is available now.

---

<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: [July 5, 2017, 10:17pm UTC](https://discuss.elastic.co/t/must-condition-with-array/61320/5 "2017-07-05T22:17:57Z")

</div>


