2017-09-24 8 views
0

J'ai récemment appris que les services mobiles azure limite leur recherche de requête à 50 (ou 1000 si vous changez la valeur par défaut), mais mon application doit pouvoir accéder à des enregistrements illimités. J'ai créé ce service pour retourner une liste qui contient tous les enregistrements. J'ai fait le nombre de sauts 1 parce que je voulais m'assurer qu'il fonctionnait sur une petite échelle avant de faire un nombre de sauts de 50. Après avoir débogué ce code, il continue de retourner deux des mêmes enregistrements avec l'un d'eux différent. Il y a trois enregistrements complètement différents dans ma base de données donc je suis confus pourquoi il en prend un deux fois. Je me suis assuré que lorsque la demande a été faite, ce montant de saut était soit 0,1,2.requête recherche retournant le même résultat deux fois

return new Promise(function(resolve, reject) { 



    var x = 0 
    var total = 1; 

    list = []; 
    console.log(list.length); 

    while(x <= 3){ 
     x++; 

    var query = table.where(where).includeTotalCount().skip(skipAmount).take(1).read().done(function (results) { 

     total = results.totalCount; 

     if(results[0] != undefined) 
     { 

     for (var i = results.length - 1; i >= 0; i--) { 
      list.push(results[i]); 
      console.log(results[i]); 
     } 



     } 
     else 
     { 

     resolve(list); 
     } 




    }, function (err) { 
     reject(err); 

    }); 

    skipAmount++; 
    } 

}); 
    } 

} 

Répondre

1

Vous devrez peut-être utiliser les .orderBy() ou .orderByDescending() méthodes de requête pour vous assurer que les données triées sont retournées.

table 
    .where(where) 
    .orderBy('updatedAt') 
    .includeTotalCount() 
    .skip(skipAmount) 
    .take(1) 
    .read() 
    .then(success, failure); 
+0

Cela a fonctionné !!! Merci beaucoup monsieur – Dedawg