Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform 后台作业中的计数错误_Parse Platform - Fatal编程技术网

Parse platform 后台作业中的计数错误

Parse platform 后台作业中的计数错误,parse-platform,Parse Platform,我在解析云上实现一个简单的(或者我认为是这样)计数后台作业时遇到了问题: 我有: 有大约200个国家的国家班 当前只有1个对象(用于测试)的通道类 基本上,每个国家都可以有几个频道使用Parse Relation链接这两个类似乎有点过分,所以我只是在Channel类中添加了一个名为“country”的字符串字段,在country类中添加了一个名为“name”的字符串字段。 我现在想做的是用背景工作统计与每个国家相关的频道。每个国家都有一个名为“nbrChannels”的字段,该字段应等于具有

我在解析云上实现一个简单的(或者我认为是这样)计数后台作业时遇到了问题:

我有:

  • 有大约200个国家的国家班
  • 当前只有1个对象(用于测试)的通道类
基本上,每个国家都可以有几个频道使用Parse Relation链接这两个类似乎有点过分,所以我只是在Channel类中添加了一个名为“country”的字符串字段,在country类中添加了一个名为“name”的字符串字段。

我现在想做的是用背景工作统计与每个国家相关的频道。每个国家都有一个名为“nbrChannels”的字段,该字段应等于具有相应“country”字段的频道数。但我得到了一些奇怪的结果:

我认为最终会起作用的代码(经过多次尝试):

当我在Parse.com上运行此作业时,作业状态为“successful”,日志中没有显示任何特殊内容

但在数据浏览器中,并非所有国家/地区都会更新:

对于大多数人来说,nbrChannels=0,但是对于其中大约30个,这似乎是完全随机的,nbrChannels=-1(意思是计数,或者说country.save()没有成功),并且他们的“updatedAt”字段显示他们根本没有更新过。

有人知道发生了什么事吗?我真的不明白这怎么可能

当我搜索答案时,我遇到了在作业中实现query.count的另一种方法,因此我尝试了以下方法:

Parse.Cloud.job("channelsPerCountry2", function(request, status) {
Parse.Cloud.useMasterKey();
var countryQuery = new Parse.Query("Country");
countryQuery.each(function(country) {
    var countryName = country.get("name");

    //var channelQuery = new Parse.Query("Channel");
    var channel = Parse.Object.extend("Channel");
    var channelQuery = new Parse.Query(channel);
    channelQuery.equalTo("country", countryName);
    return channelQuery.count().then(function(number){
        country.set("nbrChannels",number);
        country.save();
        }, function(error){
        console.error("error counting:" + error);
    });

    }).then(function() {
    status.success("Channels per country successfully counted.");
    }, function(error) {
    status.error("Oops, something went wrong!");
    });
});
这会产生更糟糕的结果:日志显示:

Failed with: Oops, something went wrong!
I2014-07-26T18:19:36.606Z] error counting:[object Object]
有人知道这个错误是什么意思,为什么失败了吗

谢谢你给我的建议和回答!我这几天真的有麻烦了

Failed with: Oops, something went wrong!
I2014-07-26T18:19:36.606Z] error counting:[object Object]