在afterSave触发器内使用查询计数(Parse.com云代码)

时间:2015-10-04 15:10:11

标签: parse-platform

我的解析云代码中有一个小的afterSave触发器。触发器只会重新计算标记为deleted = false的项目。

当我更新我的对象时,计数正常,除非我更新已删除的标志。似乎计数正在考虑保存事件之前的对象,这不是我期望的" afterSave"触发。

另一方面,通过使用"发现"而不是"计数"在同一个查询中,我将始终获得正确数量的对象。当然"发现"当查询保持在1000个以下的对象时,方式将会发生。

我的代码中有什么问题吗?这是预期的行为吗?这是一个错误吗?有没有其他方法以正确的方式计算对象?

非常感谢你的关注

Parse.Cloud.afterSave("BranchLike", function(request) {
    console.log("Managing branchLike after save...");
    Parse.Cloud.useMasterKey();
    var branch = request.object.get("branch");
    var branchLikeClass = Parse.Object.extend("BranchLike");
    var type = request.object.get("type");
    var branchLikeQuery = new Parse.Query(branchLikeClass);
    branchLikeQuery.equalTo("branch",branch);
    branchLikeQuery.equalTo("deleted",false);
    branchLikeQuery.equalTo("type",type);       
    branchLikeQuery.count({
        success: function(count) {
            console.log("count = "+count);    //works fine except on "delete" flag updates
            /* ... */
        },
        error: function(error) {
            /* ... */
        }
    });
    branchLikeQuery.find({
        success: function(branchLikes) {
            console.log("ALTERNATIVE COUNT = "+branchLikes.length);    //works fine when having less than 1000 objects
        },
        error: function(error) {
            /* ... */
        }
    });
});

0 个答案:

没有答案