2017-09-24 108 views
0

我最近了解到azure移動服務將查詢搜索限制爲50(如果更改默認值,則爲1000),但我的應用程序需要能夠訪問無限制的記錄。我創建了這個服務來返回一個包含所有記錄的列表。我做了跳數1,因爲我想確保它在執行像50這樣的跳數之前小規模工作。在調試此代碼後,它會一直返回其中一個不同的兩條記錄。在我的數據庫中有三個完全不同的記錄,所以我很困惑它爲什麼要兩次拾取其中的一個。我確定當請求被提出時,跳過數量是0,1,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

That worked !!!先生,非常感謝你 – Dedawg