我试图计算给定多边形中的值:
我正在使用这条管道:
'aggregation': {
'pipeline': [
{ "$match" : { "location" : "$loc" } },
{ "$group": { "_id": 'Average', "AvgField": { "$avg": "$myavgvalue" } , "count": {"$sum": 1} } },
]
}
但似乎$ match忽略了地理空间索引。
任何想法我怎么能这样做?
最好的问候 哈拉尔德答案 0 :(得分:2)
您需要使用?aggregate={"$loc": ...}
查询语法,因此解析器知道它必须调用聚合引擎而不是标准查询解析器。此示例直接来自documentation:
$ curl -i http://example.com/posts?aggregate={"$value": 2}
此外,请确保已将正确的地理索引添加到集合中。除非您通过设置mongo_indexes
明确选择这样做,否则Eve不会自动为您执行此操作。