2015-09-11 46 views
0

我想得到40個用戶,其中「分數」小於或等於某個值,而40個用戶的「分數」大於或等於相同的值。但是這兩個查詢都只返回按降序排序的前100位用戶。 這裏是代碼爲什麼查詢只返回前100位用戶?

var query = ParseUser.Query; 

     if(mode==0) 
     { 
      query.WhereNotEqualTo("fbLogged", true) 
       .WhereNotEqualTo("username", SaveManager.Instance.TempUsername) 
       .WhereGreaterThanOrEqualTo("score", SaveManager.Instance.Score) 
       .Limit(40); 
     } 

     query.FindAsync().ContinueWith(t => 
     { 
      if (t.IsCanceled || t.IsFaulted) 
      { 
       foreach (var e in t.Exception.InnerExceptions) 
        Debug.LogError("Error: " + e.Message); 
       return; 
      } 
      else 
      { 
       var query1 = ParseUser.Query; 

       if(mode==0) 
       { 
        query1.WhereNotEqualTo("fbLogged", true) 
        .WhereNotEqualTo("username", SaveManager.Instance.TempUsername) 
        .WhereLessThanOrEqualTo("score", SaveManager.Instance.Score) 
        .Limit(40); 
       } 

       query1.FindAsync().ContinueWith(t1=> 
       { 
        Debug.Log("first query count: " + t.Result.ToList().Count); 
        Debug.Log("second query count: " + t1.Result.ToList().Count); 

        var r = t.Result.ToList(); 
        r.AddRange(t1.Result.ToList()); 

        List<UserRank> ranks = new List<UserRank>(); 
        r.ForEach(info => { ranks.Add(RetrieveUserRankData((ParseUser)info)); }); 

        ranks = ranks.OrderByDescending(ur => ur.Score).ToList(); 

        UserRank first = ranks.First(); 
        UserRank last = ranks.Last(); 

        Debug.Log("my score: " + SaveManager.Instance.Score); 
        Debug.Log("first name and score: " + first.Name + " " + first.Score); 
        Debug.Log("last name and score: " + last.Name + " " + last.Score); 

某些部分另外這裏的日誌

enter image description here

我做了什麼錯?

回答

0

默認情況下,查詢默認限制爲100行。最大行數爲1000.要增加限制,請使用query.setLimit(1000)將查詢行數增加到1000.

+0

其實我使用Limit(40),而不是101或200,LIMIT(40),40! 40 <100,但它返回100。 – user2686299