如何从类关系中检索对象列表?

时间:2015-04-02 05:20:45

标签: javascript parse-platform cloud-code

我有一个类Store,其关系itemsInStore在Parse上包含多个Item个对象。我目前正在尝试解析云代码以检索Items中的所有Store,但不知道这是什么常见做法。

特别是,我找不到真正回答我问题的文章,例如:查询应该如何。

Parse.Cloud.define("retrieveNearbyLocationsAndItemsWithCurrentLocation", function(request, response) {
    var Store = Parse.Object.extend("Store");
    var store = new Store();
    var query = new Parse.Query(Store);
    var userGeoPoint = new Parse.GeoPoint(request.params.lat, request.params.long);

    query.near("geopoint", userGeoPoint);
    query.limit(1);

    query.find({
        success: function(httpResponse) {
            response.success(httpResponse[0].get("itemsInStore"));
            console.log(httpResponse[0].get("itemsInStore"));

        },
        error: function(httpResponse) {
            response.error("Error: retrieveNearbyLocationsAndItemsWithCurrentLocation");
        }


    });


});

控制台日志将返回{"__type":"Relation","className":"Item"}

为了深入了解这个Relation并检索其中的所有Item个对象,接下来应该做些什么?

1 个答案:

答案 0 :(得分:1)

该关系回答了一个查询。运行该查询以获取相关元素。

Parse.Cloud.define("retrieveNearbyLocationsAndItemsWithCurrentLocation", function(request, response) {
    var Store = Parse.Object.extend("Store");
    var store = new Store();
    var query = new Parse.Query(Store);
    var userGeoPoint = new Parse.GeoPoint(request.params.lat, request.params.long);
    query.near("geopoint", userGeoPoint);
    query.limit(1);

    query.find().then(function(stores) {
        if (stores.length && stores[0].relation("itemsInStore")) {
            var itemQuery = stores[0].relation("itemsInStore").query();
            return itemQuery.find();
        } else {
            return [];
        }
    }).then(function(items) {
        response.success(items);
    }, function(error) {
        response.error(error);
    });
});