2015-12-23 3 views
0

Когда конкретный объект удален, мне нужно использовать триггер afterDelete для удаления ссылок на только что удаленный объект. В частности, класс User имеет столбец, который является указателем на объект типа, который был просто удален. Поэтому мне нужно отменить этот столбец для пользователей, у которых был установлен этот объект, который был просто удален. Для этого я запрашиваю пользователей, перебирая результаты запроса, unset, используя атрибут, затем вызывающий saveAll. Мое беспокойство заключается в том, что результаты запроса могут возвращать большое количество пользователей, и мне нужно обеспечить, чтобы все они были обновлены.Использование триггера afterDelete для изменения большого количества пользователей

Мой вопрос в том, что триггеры Cloud Code имеют ограничение максимального количества 1000? Есть ли лучший способ отключить этот указатель после удаления этого объекта? Нет ли автоматического удаления указателей на этот удаленный объект?

Parse.Cloud.afterDelete("Book", function(request) { 
    Parse.Cloud.useMasterKey(); 

    var book = request.object; 

    var userQuery = new Parse.Query(Parse.User); 
    userQuery.equalTo("Favorite_Book", book); 
    userQuery.limit(1000); 
    userQuery.find({ 
     success:function(users){ 
      for (var i = 0; i < users.length; i++) { 
       users[i].unset("Favorite_Book"); 
      } 
      Parse.Object.saveAll(users, { 
       success: function(users) {}, 
       error: function(users, error) { 
        console.error("Failed to update users: " + error.code + ": " + error.message); 
       } 
      }); 
     }, error: function(error) { 
      console.error("Failed to fetch users: " + error.code + ": " + error.message); 
     } 
    }); 
}); 

ответ

0

Есть в основном два вопроса, вы должны знать:

  1. Анализировать запрос возвращает только максимум 1000 записей. Чтобы обработать больше записей, вам нужно разбивать на страницы результаты с помощью метода skip на ваш объект запроса. Вы можете использовать Promises in Series для обработки всех ваших записей партиями по 1000 записей.

  2. На бесплатном плане Parse вы ограничены только 1800 запросами в минуту. Это означает, что вы не можете сохранять или обновлять большое количество записей за короткий промежуток времени.

Смежные вопросы