动机
最近有个需求要按照地理位置统计某个点周围一定半径内的销售额,最早使用 MySQL 来进行查询。由于数据量较大,经常能把 CPU 跑满。现在尝试换用 MongoDB 并使用索引进行优化查询。
问题
目前有两个问题:
在使用 geoNear 进行聚合查询的时候,maxDistance 应该如何取值?
我目前使用 jenssegers/mongodb 查询的时候如何使用 geoNear 做聚合查询?
目前的尝试
采用 Laravel 进行 geo 聚合查询的时候一直提示:$geoNear, $near, and $nearSphere are not allowed in this context
目前采用查询 db.order_positions.aggregate([{'$geoNear':{'near':[21.466359, 31.2226934],"distanceField":"location","maxDistance":1.25,'spherical':true}},{$group: {_id : "1", sum_amount : {$sum : 1}}}]) 但由于不知道 maxDistance 该如何正确取值,所以无论怎么查结果都不对。