解析云代码获取指针

时间:2018-02-22 13:14:57

标签: javascript pointers parse-platform cloud-code

我正在开发一个我希望实施径向搜索的应用。为此,我在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"
}

我现在的目标是用真实的用户对象替换关键“用户”的对象,而不是指针。

2 个答案:

答案 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是带指针的字段的名称