2017-09-24 2 views
0

私は最近、アジールのモバイルサービスがクエリの検索を50(またはデフォルトを変更した場合は1000)に制限していることを知りましたが、アプリは無制限のレコードにアクセスできる必要があります。私はすべてのレコードを含むリストを返すためにこのサービスを作成しました。スキップカウントを1にしたのは、50のようなスキップカウントを行う前に小規模に動作していることを確認したかったからです。このコードをデバッグした後、同じレコードを2つ返すことができます。私のデータベースには3つの全く異なるレコードがあります。なぜなら、なぜそのレコードを2回ピックアップしているのか混乱しています。リクエストが行われたときにスキップ量が0,1,2のいずれかであることを確認しました。クエリー検索で同じ結果が2回返される

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++; 
    } 

}); 
    } 

} 

答えて

1

あなたがソートされたデータが返されることを確認する.orderBy()または.orderByDescending()クエリメソッドを使用する必要があります。

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

どうもありがとうございます – Dedawg

関連する問題