解析云代码:查询后删除所有对象

时间:2014-08-08 20:00:18

标签: javascript parse-platform parse-framework

方案

我有一个允许用户创建帐户的应用,但也允许用户删除其帐户。删除他们的帐户后,我有一个云代码功能,将删除用户所做的所有“发布”。我正在使用的云代码是......

//Delete all User's posts
Parse.Cloud.define("deletePosts", function(request, response) {

    var userID = request.params.userID;

    var query = new Parse.Query(Parse.Post);
    query.equalTo("postedByID", userID);
    query.find().then(function (users) {

        //What do I do HERE to delete the posts?

        users.save().then(function(user) {
        response.success(user);
        }, function(error) {
        response.error(error)
        });

    }, function (error) {

         response.error(error);

    });

});

问题

我对所有用户的帖子进行了查询后,如何删除? (见://What do I do HERE?

2 个答案:

答案 0 :(得分:6)

您可以使用

Parse.Object.destroyAll(users); // As per your code – what you call users here are actually posts

请参阅:http://parseplatform.org/Parse-SDK-JS/api/classes/Parse.Object.html#methods_destroyAll

另外,考虑在Parse.User上使用Parse.Cloud.afterDelete(如果你的意思是"删除帐户")来进行清理,例如这些。

哦,只是为了完成,你在destroyAll()之后不需要save()例程

答案 1 :(得分:2)

在线下方更新您的"我该怎么做?"评价:

注意:

  1. 您不需要调用save()方法,所以我把它拿出来了。

  2. 当然,这仅仅是个人偏好的问题,但是你可能想要选择一个比#34;用户更有意义的参数名称,因为你是"真的不是查询用户,而是帖子(恰好与用户有关)。


  3. Parse.Cloud.define("deletePosts", function(request, response) {
        var userID = request.params.userID;
    
        var query = new Parse.Query(Parse.Post);
        query.equalTo("postedByID", userID);
        query.find().then(function (users) {
    
            //What do I do HERE to delete the posts?
            users.forEach(function(user) {
                user.destroy({
                    success: function() {
                        // SUCCESS CODE HERE, IF YOU WANT
                    },
                    error: function() {
                        // ERROR CODE HERE, IF YOU WANT
                    }
                });
            });
        }, function (error) {
             response.error(error);
        });
    });