按ObjectId删除多个对象

Deleting Multiple Objects by ObjectId

本文关键字:对象 删除 ObjectId      更新时间:2023-09-26

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:它们都存在,而且是预期的。

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

有什么想法吗?

作为初始调试步骤,请尝试对每个对象调用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);
    }
  });
}

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