KiiObject のカウント

Bucket 内の全 KiiObject 数や、ある検索条件にヒットする KiiObject の数を取得できます。

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

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

Bucket 内の全 KiiObject を数える

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

curl -v -X GET \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users/me/buckets/{BUCKET_ID}"

Kii Cloud は、次のように KiiObject 数を "size" の値として返します。

< HTTP/1.1 200 OK
< Content-Type: application/vnd.kii.BucketRetrievalResponse+json
<
{
  "bucketType" : "rw",
  "size" : {OBJECT_COUNT}
}

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

検索条件にヒットする KiiObject 数をカウントする例を以下に挙げます。この例では「"age" フィールドの値が 25 以上な KiiObject」をカウントしています。

curl -v -X POST \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "Content-Type: application/vnd.kii.QueryRequest+json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users/me/buckets/{BUCKET_ID}/query" \
   -d '{
    "bucketQuery" : {
      "clause" : {
        "type" : "range",
        "field" : "age",
        "lowerLimit" : 25,
        "lowerIncluded" : true
      },
      "aggregations" : [ {
        "type" : "COUNT",
        "putAggregationInto" : "count_field"
      } ]
    }
  }'

基本的には KiiObject の検索 を行う要領で検索条件を指定します。

KiiObject 数を取得する場合は、以下の情報を "aggregations" に指定します。

  • "type": KiiObject 数をカウントすることを示す "COUNT" を指定します。
  • "putAggregationInto": カウントした KiiObject 数を返すために使うフィールド名を指定します。

Kii Cloud は、検索条件にヒットした KiiObject 数を次のように返します。

< HTTP/1.1 200 OK
< Content-Type: application/vnd.kii.QueryResponse+json
<
{
  "queryDescription" : "SELECT count(*) as count_field WHERE ( 10 < count )",
  "aggregations" : {
    "count_field" : {OBJECT_COUNT}
  }
}