The document has a field like this.
"device_versions": [
{
"name": "android",
"min_major_ver": 3,
"min_minor_ver": 54,
"min_patch_ver": 0
},
{
"name": "ios",
"min_major_ver": 2,
"min_minor_ver": 59,
"min_patch_ver": 0
}
]
I want to write a query like this
(device_versions.name = 'android' AND device_versions.min_major_ver = 3 AND device_versions.min_minor_ver = 55)
I have written the following query-
"must": [
{
"term": {
"device_versions.name": "android"
}
},
{
"range": {
"device_versions.min_major_ver": {
"from": 3,
"include_lower": true,
"include_upper": true,
"to": null
}
}
},
{
"range": {
"device_versions.min_minor_ver": {
"from": 55,
"include_lower": true,
"include_upper": true,
"to": null
}
}
}
]
The problem with above query is: The last range query matches with the array element which has device name = 'ios'
What I need is: Apply 3 condition on same array element. device = "android" AND min_major_ver = 55 AND min_minor_ver = 55