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

How can I retrieve a list of objects from a class relation?

本文关键字:检索 对象 列表 关系      更新时间:2023-09-26

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

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

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对象,接下来应该做什么?

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

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);
    });
});