我正在尝试删除所有具有特定价值的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');
}
});
谢谢!
答案 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。