LoginSignup
4
5

More than 5 years have passed since last update.

UnityでParseから1000件以上のデータをまとめて取得する

Posted at

UnityでParseのデータを取得する場合に標準では100件ずつになっています。
QueryのLimit()で最大1000まで増やすことができますが、1000件以上取得する場合
やり方が分からなくて悩んだのでメモします。

// データ取得用クエリ
    ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(ObjectName);
    query = query.OrderBy("createdAt");
    query = query.Limit(1000);

// データ件数をカウントするクエリ
    ParseQuery<ParseObject> countquery = new ParseQuery<ParseObject>(ObjectName);
    var ResultCount = countquery.CountAsync();

    while (!countresult.IsCompleted) yield return null;
    int cnt = countresult.Result;

    while( cnt/1000 > loop )
    {
        //1000件毎にSkipする
        if (loop != 0) query = query.Skip(1000);
        var task = query.FindAsync();
        ...
        //データを取得して、処理する
    }

データ件数カウントと実際のデータ検索用にQueryを2つ用意するのが正しいのか?
わかりませんが、とにかくQuery.Limit()は1000が上限なので
1000件毎にLoopしながらSkip()をしていけばOKということが無事分かりました。
データ件数が多い場合はやばいかもしれませんがそれはおいておきます。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5