我正在开发一个我希望实施径向搜索的应用。为此,我在Parse上创建了一个名为“UserLocation”的类,其中我保存了用户坐标和指向“_User”对象的指针。现在我正在开发一个云代码函数来获取半径范围内的一些用户。使用下面的代码,我得到了附近的人,但不幸的是只有一个指针,所以我需要获取设备上的所有这些用户。有没有办法从云代码而不是指针中获取用户对象?
Parse.Cloud.define('circum_search', function (request, response)
{
var lat = request.params.lat;
var lon = request.params.lon;
var radius = request.params.radius;
var query = new Parse.Query("UserLocation");
query.withinKilometers("location", new Parse.GeoPoint(lat, lon), radius);
query.find({
success: function(locationObjects) {
Parse.Object.fetchAllIfNeeded(locationObjects);
response.success(locationObjects);
}
});
});
我现在得到的答案是一系列像这样的对象:
{
"location": {
"__type": "GeoPoint",
"latitude": 47.3268966,
"longitude": 8.542694
},
"user": {
"__type": "Pointer",
"className": "_User",
"objectId": "ce9GRAzCF8"
},
"createdAt": "2018-02-01T17:08:07.078Z",
"updatedAt": "2018-02-01T17:08:07.078Z",
"ACL": {
"d9db3aUdYU": {
"read": true,
"write": true
},
"*": {
"read": true
}
},
"objectId": "m3DmYfFv7I",
"__type": "Object",
"className": "UserLocation"
}
我现在的目标是用真实的用户对象替换关键“用户”的对象,而不是指针。
答案 0 :(得分:1)
仅供参考您还可以使用带点符号的include()
查询方法来包含作为指针存储在包含对象上的对象。即如果ClassA有一个指向ClassB的指针有一个指向ClassC的指针,你可以这样做:
var query = new Parse.Query("ClassA");
query.include("classB").include("classB.classC");
假设使用小写的classname命名字段。
答案 1 :(得分:0)
好的,最后有一个非常简单的解决方案,但我有很长时间才能找到它;)只需添加
query.include('user')
其中user是带指针的字段的名称