jmespath.site icon indicating copy to clipboard operation
jmespath.site copied to clipboard

How to transform Elasticsearch mutiple aggregation TopN

Open wedo99 opened this issue 6 years ago • 0 comments

in Elasticsearch I have to query with mutiple aggregation, result like this:

[
    {
        "field_name1": "field_name1_value1",
        "field_name2": "field_name2_value1",
        "count": 2
        "topN": [{"name": "aaa"},{"name": "bbb"}]
    },
    {
        "field_name1": "field_name1_value2",
        "field_name2": "field_name2_value2",
        "count": 2
        "topN": [{"name": "ccc"},{"name": "ddd"}]
    },
    {
        "field_name1": "field_name1_value1",
        "field_name2": "field_name2_value2",
        "count": 3
        "topN": [{"name": "eee"},{"name": "fff"},{"name": "ggg"}]
    }
]

I hope transform it like this :

{
	"field_name1_value1": {
		"field_name2_value1": {
			"count": 2,
			"topN": [{"name": "aaa"},{"name": "bbb"}]
		},
		"field_name2_value2": {
			"count": 3,
			"topN": [{"name": "eee"},{"name": "fff"},{"name": "ggg"}]
		}
	},
	"field_name1_value2": {
		"field_name2_value2": {
			"count": 2,
			"topN": [{"name": "ccc"},{"name": "ddd"}]
		}
	}
}

how could I do

wedo99 avatar Sep 08 '19 04:09 wedo99