从Parse.com删除特定对象

时间:2014-10-06 01:23:22

标签: javascript parse-platform cloud-code

在我的云代码中,我想要检索“Messages”类中的第一个对象。然后我想从该对象中获取一些信息,将其发送到另一个类,最后从我最初从中删除它的“Messages”类中删除该对象。下面是我的代码,但它不起作用。我该怎么做这个?

我应该使用与“destroy”方法不同的方法,例如collection.remove?

Parse.Cloud.afterSave("sendMessage", function(Parse.Message, response) {
  var body = null;
  var senderName = null;
  var senderId = null;
  var randUsers = [];

  var query = new.Parse.Query(Parse.Message);
  query.find({
    success: function(results){
      body.push(results[1].get("messageBody"));
      senderName.push(results[1].get("senderName"));
      senderId.push(results[1].get("senderId"));
      results[1].destroy({
        success: function(results[1]){
          //the first object in the class "Messages" was deleted
        }, error: function(results[1], error){
          //the first object was not deleted
        }
      });
      response.success(getUsers);
    }, error: funtion(error){
      response.error("Error");
    }

  });
});

避免混淆:“getUsers”是一个任意函数调用。

3 个答案:

答案 0 :(得分:10)

条目重复的问题;

Query entire class vs first object in the class

但是,如果要删除特定对象,则需要具有唯一标识的对象 宾语。然后,一种方法是使用Parse对象id从类中删除对象。

要通过云删除对象,需要使用ParseObject的destroy方法。但是如果你有多个对象,那么你可以使用destroyAll方法。下面是javascript API上ParseObject删除方法的一个例子;

var yourClass = Parse.Object.extend("YourClass");
var query = new Parse.Query(yourClass);
query.get("yourObjectId", {
  success: function(yourObj) {
    // The object was retrieved successfully.
    yourObj.destroy({});
  },
  error: function(object, error) {
    // The object was not retrieved successfully.
    // error is a Parse.Error with an error code and description.
  }
}); 

希望这有帮助, 问候。

答案 1 :(得分:0)

上面有一些变化:

var missingDataQuery = new Parse.Query(missingDataObj)
            missingDataQuery.equalTo('projectId',project);

            var getMissingData = missingDataQuery.find({
                  success: function(yourObj) {
                    console.log('here')
                    yourObj[0].destroy({})
                  },
                  error: function(object, error) {

                  }
            });

在这里我们得到物体然后销毁它。

答案 2 :(得分:0)

func deleteImage(imageId: String) {

    let query = PFQuery(className: "ClassName")
    query.whereKey("imageId", equalTo: "\(imageId)")

    query.findObjectsInBackground {
        (objects:[PFObject]?, error: Error?) -> Void in

        if error == nil && (objects != nil) {
            for object in objects! {
                object.deleteInBackground()
                print("object deleted")
            }
        }
    }
}