计算给定地理多边形内的$ avg值

时间:2016-03-20 13:42:37

标签: mongodb eve

我试图计算给定多边形中的值:

我正在使用这条管道:

    'aggregation': {
        'pipeline': [
            { "$match" : { "location" : "$loc" } },
            { "$group": { "_id": 'Average', "AvgField": { "$avg": "$myavgvalue" }  , "count": {"$sum": 1} } },
        ]
    }

但似乎$ match忽略了地理空间索引。

任何想法我怎么能这样做?

最好的问候 哈拉尔德

1 个答案:

答案 0 :(得分:2)

您需要使用?aggregate={"$loc": ...}查询语法,因此解析器知道它必须调用聚合引擎而不是标准查询解析器。此示例直接来自documentation

$ curl -i http://example.com/posts?aggregate={"$value": 2}

此外,请确保已将正确的地理索引添加到集合中。除非您通过设置mongo_indexes明确选择这样做,否则Eve不会自动为您执行此操作。