我尝试向$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);
它抛出错误:
坏$ geoWithin值; $ polygon应包含至少3个GeoPoints。
原因显然是Parse Server的Mongo Transformer只接受带有$geoWithin
的多边形参数。
如何添加查询约束,将结果限制为在地理坐标的某个半径范围内具有location
字段的文档?
答案 0 :(得分:0)
事实证明,Parse Server不支持这种类型的查询。但由于Parse Server
是一个开放的ource 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中尚未提供的功能,等待拉取请求的合并。