2015-08-20 2 views
0

Мне очень нужна помощь с партией BaaS. У меня есть класс «Лицо» с такими полями: имя, очки, рейтинг и т. Д. Пожалуйста, помогите мне решить проблему - мне нужно установить значение «1» в поле «рейтинг» для пользователя с максимальным количеством точек, установите «2» пользователю с меньшим количеством точек и так далее. Как я могу это сделать? Я знаю, как установить «1» только для одного человека, который имеет максимальное количество баллов:Система рейтинга с парсером

query.descending("points"); 
query.first({ 
     success: function(result){ 
     // ... 

     }, 
     error: function(){ 
     }, 
}); 

Но как сделать это для каждого человека?

ответ

0

Я решил проблему. Возможно, это поможет кому-то

Parse.Cloud.job("Rating", function(request, status) { 
    Parse.Cloud.useMasterKey(); 
     var usersToSave= []; 
     var query = new Parse.Query("Person"); 
     query.descending("points"); 
     query.find().then(function(results) { 
      for(var i = 0; i < results.length; i++) 
      { 
       var user = results[i]; 
       user.set("rating", i+1); 
       usersToSave.push(user); 
      } 
     }).then(function() { 
      Parse.Object.saveAll(usersToSave, { 
      success: function(list) { 
       if (status) { 
        status.success("success"); 
       }; 
      }, error: function(model, error) { 
       if (status) { 
        status.error(error); 
       } 
      } 

     }); 
    }); 
});