KiiObject のカウント

Bucket 内の全 KiiObject 数は count() または count(CountCallBack) メソッドで取得できます。同様に、ある検索条件にヒットする KiiObject の個数は count(KiiQuery) または count(KiiQuery, CountCallBack) メソッドで取得できます。

KiiObject 数は、実行したユーザーから実際にアクセスできる件数をカウントします。ACL によってアクセスできない KiiObject はカウント対象になりません。

KiiObject 数が多い場合、パフォーマンスが低下する場合があります。対処方法は パフォーマンス をご覧ください。

Bucket 内の全 KiiObject を数える

Bucket 内の全 KiiObject 数をカウントする例を以下に挙げます。

  • // Prepare the target bucket to be queried.
    KiiBucket bucket = Kii.bucket("people");
    
    try {
      // Count the number of the KiiObjects in the bucket.
      int count = bucket.count();
      Log.v("CountObjects", "Number of objects : " + count);
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Prepare the target bucket to be queried.
    KiiBucket bucket = Kii.bucket("people");
    
    // Count the number of the KiiObjects in the bucket.
    bucket.count(new CountCallBack() {
      @Override
      public void onCountCompleted(KiiBucket bucket, KiiQuery query, int count, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
        Log.v("CountObjects", "Number of objects : " + count);
        // The query argument has a query that returns all KiiObjects in the bucket.
      }
    });

検索条件にヒットする KiiObject を数える

検索条件にヒットする KiiObject 数をカウントする例を以下に挙げます。この例では "people" という名前の Bucket 内の KiiObject のうち、"age" が 25 以上のものをカウントしています。

  • // Prepare the target bucket to be queried.
    KiiBucket bucket = Kii.bucket("people");
    
    // Create a query that returns KiiObjects whose "age" is equal or greater than 25.
    KiiClause clause = KiiClause.greaterThanOrEqual("age", 25);
    KiiQuery query = new KiiQuery(clause);
    
    try {
      // Count the number of the KiiObjects that meet the above condition.
      int count = bucket.count(query);
      Log.v("CountObjects", "Number of objects : " + count);
    } catch (IOException e) {
      // Handle the error.
    } catch (AppException e) {
      // Handle the error.
    }
  • // Prepare the target bucket to be queried.
    KiiBucket bucket = Kii.bucket("people");
    
    // Create a query that returns KiiObjects whose "age" is equal or greater than 25.
    KiiClause clause = KiiClause.greaterThanOrEqual("age", 25);
    KiiQuery query = new KiiQuery(clause);
    
    // Count the number of the KiiObjects that meet the above condition.
    bucket.count(query, new CountCallBack() {
      @Override
      public void onCountCompleted(KiiBucket bucket, KiiQuery query, int count, Exception exception) {
        if (exception != null) {
          // Handle the error.
          return;
        }
        Log.v("CountObjects", "Number of objects : " + count);
      }
    });