我有实体的Parse表。 用户 - 默认类 Commets - 带有指向_User实体的指针的类。
我需要从实体User中删除用户及其所有注释,位于Comments entity:
现在我有JS云代码:
Parse.Cloud.define("deleteUser", function(request, response) {
var User = Parse.Object.extend("User");
var query = new Parse.Query(User);
var userID = request.params.userID;
query.get(userID,{
success: function(User) {
var message = 'success';
User.destroy({
useMasterKey: true ,
success:function() {
response.success(message);
return;
},
error:function(error) {
response.error('Could not delete object '+ User.id);
return;
}
});
},
error: function(object, error) {
var message = 'User could not found';
response.error(message);
}
});
});
仅删除用户。 我如何结合使用来删除其他实体的记录?
感谢您提前
答案 0 :(得分:4)
正如eth3lbert在注释中指出的那样,你应该使用一个在删除User对象后调用的afterDelete钩子。您可以启动任何其他删除操作。
但是,有一些问题,在挂钟时间3秒后,before *和after *方法会被杀死,这可能会导致不需要的结果,具体取决于您需要删除的数据量。
最适合您的解决方案是设置后台作业(它们可以运行最多15分钟),安排它运行,每天说一次,并在该作业中进行任何清理工作。
您可以为其创建一个简单的表,其中包含已删除用户的objectIds,每当调用afterDelete
方法时,您将已删除的用户ID添加到该表中,然后您的后台作业在运行时查询该表并删除与其关联的内容。
答案 1 :(得分:0)
您可以如下所示轻松地从用户请求中删除用户。
Parse.Cloud.define('deleteUser', async (req) => {
const user = req.user;
return user.destroy({ useMasterKey: true});
})
并添加与User
相关的其他删除逻辑。