通过ObjectId删除多个对象

时间:2015-12-21 22:07:03

标签: javascript parse-platform cloud-code

destroyAll似乎需要对象本身..

我尝试过这样的事情:

  var arrayToDelete = [];

  for (objectId in objectIdArray) {
    var rawProduct = Parse.Object.extend("Product");
    var productToDelete = new rawProduct();
    productToDelete.id = objectId;
    arrayToDelete.push(productToDelete);
  }

  Parse.Object.destroyAll(arrayToDelete, {
    success: function() {
      response.success("succeeded")
    }, 
    error: function(error) {
      response.error("failed")
    }
  });

但它返回失败,记录的错误为object not found for delete

我已经手动检查了objectId:它们都存在,它们是预期的。

我想避免获取对象,因为我已经有了对它们的引用,并希望一次删除它们。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

作为初始调试步骤 - 尝试在每个对象上调用destroyAll,以查看哪些对象导致问题记录实际错误。

 for (objectId in objectIdArray) {
    var rawProduct = Parse.Object.extend("Product");
    var productToDelete = new rawProduct();
    productToDelete.id = objectId;
      Parse.Object.destroyAll([productToDelete], {
    success: function() {
      response.success("succeeded");
    }, 
    error: function(error) {
      console.log('destroyAll cb: ', error);
      response.error("failed: " + error);
    }
  });
}

答案 1 :(得分:0)

发布的代码没有任何问题。它可以使Parse.Object.createWithoutData()更简洁,但它应该可以正常工作。该错误表明至少有一个ID是错误的,它不是任何Product对象的objectId。