如何将 $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 起尚不可用的功能,等待拉取请求的合并。
我尝试将 $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 起尚不可用的功能,等待拉取请求的合并。