如何将 $geoWithin 约束添加到解析服务器中的查询?

How to add a $geoWithin constraint to a query in parse server?

我尝试将 $geoWithin 约束添加到 Parse.Query,如下所示:

var query = new Parse.Query("MyCollection");
var jsonQuery = query.toJSON();

jsonQuery.where.location = {
    "$geoWithin": {
        "$centerSphere": [
            [geoPoint.longitude, geoPoint.latitude],
            10 / 6371.0
        ]
    }
};

query.withJSON(jsonQuery);

它抛出错误:

bad $geoWithin value; $polygon should contain at least 3 GeoPoints.

原因显然是 Parse Server 的 Mongo Transformer 只接受带有 $geoWithin 的多边形参数。

如何添加查询约束,将结果限制为具有 location 字段且位于地理坐标以公里为单位的特定半径内的文档?

原来Parse Server不支持这种类型的查询。但是由于 Parse Server 是一个开放的 source project on Github,我添加了特征*.

问题中的代码有效,将地理查询中的新 sorted 参数设置为 false:

也可以实现同样的效果
var location = new Parse.GeoPoint(37.708813, -122.526398);
var distance = 5;
var sorted = false;

var query = new Parse.Query(MyCollection);
query.withinKilometers("location", location, distance, sorted);

*自 Parse Server v2.8.2 和 JS SDK v1.11.1 起尚不可用的功能,等待拉取请求的合并。