删除具有特定值的所有解析用户

时间:2015-07-18 16:22:08

标签: ios parse-platform

我正在尝试删除所有具有特定价值的Parse.com用户。因此,如果schoolName == NHS,则应将其删除。我有可能有效的代码,但我对它没有信心,如果有人可以帮助确认这应该有效,我会很感激,如果这是最好的方法。

Parse.Cloud.job("deleteUsers", function(request, status) 
Parse.Cloud.useMasterKey();

var query = new Parse.Query("_User");
query.lessThan("schoolName", "NHS");
query.find({
    success: function(result) {
        for(var i=0; i<result.length; i++) {
            result[i].destroy({
                success: function(object) {
                    status.success("Delete job completed");
                    alert('Delete Successful');
                },
                error: function(object, error) {
                    status.error("Delete error :" + error);
                    alert('Delete failed');
                }
            });
        }
        status.success("Delete job completed");
    },
    error: function(error) {
        status.error("Error in delete query error: " + error);
        alert('Error in delete query');
    }
});

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您害怕犯错误,以下内容可能会帮助您并运行您的代码。使用导出导出所有数据,您将从 Parse.com 电子邮件中收到。然后,将所有导出的数据导入新应用程序以进行测试。然后,它不会在 Parse.com 中更改您的原始应用。

答案 1 :(得分:0)

使用for循环搜索结果将无效,请尝试使用promise:

Parse.Cloud.job("deleteUsers", function(request, status) {
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query("_User");
    query.lessThan("schoolName", "NHS");
    return query.find().then(function(users) {
        return Parse.Promise.when(results.map(function(user) {
            user.destroy();
        }));
    }).then(function() {
        status.success("Delete job completed");
    }, function(error) {
        status.error(error);
    });
});

要避免删除数据,只需删除user.destroy()并将其替换为console.log(user.id)即可检查每个objectId。