在 Parse.com Cloud Code 中按查询分组

Group By Query in Parse.com Cloud Code

我正在尝试使用云代码在 Parse.com 中获取以下 sql 命令的结果。

选择店铺,按店铺从会员组中计数(1);

有办法吗?还是选择每个店铺只能得到会员数量?

var query = new Parse.Query("Membership");
query.equalTo("shop",shop_id);
var promise = query.find().then(function(results){
        var number_of_membership_of_one_shop = results.leng
        return results;
    });

不幸的是,Parse 不支持分组依据。

您可以先 select 所有商店,然后对每个商店使用计数查询。

var query = new Parse.Query("Membership");
query.equalTo("shop",shop_id);

var promise = query.count().then(function(count){
    var number_of_membership_of_one_shop = count;
    return number_of_membership_of_one_shop;
});

如果这执行了太多请求,您可以 select 所有成员资格,然后在客户端上对其进行计数,但这将限制为 1000,因此您可能需要采用一些其他技术:

var query = new Parse.Query("Membership");
query.select("shop_id");
query.limit(1000);
var storeCounts = [];

queryObject.find({
    success: function (results) {
        for (var i = 0; i < results.length; i++) {
            var shopId = results[i].get('shop_id');

            if (!storeCounts[shopId]) {
                storeCounts[shopId] = 0;
            }

            storeCounts[shopId]++;
        }
    },
    error: function (error) {
        alert("Error: " + error.code + " " + error.message);
    }
});