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}
}
}