Geo distance stats

I have the following query that works well:

{
    "query":{
        "bool": {"filter": [{"match": {"name.raw": name}}, {'match':{'store.raw': store}}]}
    }, 
    "aggs":{
       "products":{
            "terms": {"field": "name.raw"},
            "aggs":{"stats_price": {"stats": { "field": "price"}}}
                }
    },
    "post_filter": {
          "geo_distance":{
                "distance": distance,
                "location": {"lon": lon, "lat": lat}
            }  
    }
}

However I fail to find a version of this request where I would have the aggregation done per ring.

So that I would be the result of aggs :{"stats_price": {"stats": { "field": "price"}}} per ring within a range [{"from": 0, "to": 3}, {"from": 0}] (from 0 would be an aggregation on all the data)

Did you mean using a geo distance aggregation as opposed to the filter in your example?

https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-aggregations-bucket-geodistance-aggregation.html

I still want to use the post_filter but I fail to get the stats aggregation (using the geo distance aggregation) by bucket.
To clarify, is it possible to do something like:

    "aggs":{
       "rings":{
            "geo_distance":{
                "field": "location",
                "origin": {"lon": lon, "lat": lat},
                "ranges":[{"from": 0, "to": 3}]
                    },
            "aggs": { "price_stats": {"stats" : { "field" : "price" } } }
                }
    },
    "post_filter": {
          "geo_distance":{
                "distance": distance,
                "location": {"lon": lon, "lat": lat}
            }  
    }