代码之家  ›  专栏  ›  技术社区  ›  Stephan Boner

解析云代码获取指针

  •  0
  • Stephan Boner  · 技术社区  · 7 年前

    我正在开发一个应用程序,我想在其中实现径向搜索。为此,我在Parse上创建了一个名为“UserLocation”的类,在这里保存用户坐标和指向“\u 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"
    }
    

    我现在的目标是将键“user”的对象替换为真实的user对象,而不是指针。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Jake T.    7 年前

    仅供参考,您也可以使用 include() 使用点表示法进行查询的方法,该方法还包括作为指针存储在包含对象上的对象。一、 e.如果ClassA有一个指向ClassB的指针,那么您可以这样做:

    var query = new Parse.Query("ClassA");
    query.include("classB").include("classB.classC");
    

    假设字段使用小写的classname命名。

        2
  •  0
  •   Stephan Boner    7 年前

    好的,最后有一个非常简单的解决方案,但我花了很长时间才找到;)只需添加

    query.include('user')
    

    其中user是带有指针的字段的名称