집계 쿼리는 여러 색인이 생성된 항목의 데이터를 처리하여 단일 요약 값을 반환합니다. Datastore 모드의 Firestore는 다음 집계 쿼리를 지원합니다.
count()
sum()
avg()
집계 쿼리를 사용하면 애플리케이션 코드가 단순화되고 처리할 각 항목을 가져오는 것보다 비용이 적게 듭니다. 이 페이지를 읽고 집계 쿼리를 사용하는 방법에 대해 알아보세요.
count()
집계
count()
집계를 사용하여 지정된 쿼리와 일치하는 색인이 생성된 항목의 총수를 반환합니다. 예를 들어 이 count()
집계는 한 종류의 총 항목 수를 반환합니다.
자바
Python
Go
aggregationCountQuery := datastore.NewQuery("Task"). NewAggregationQuery(). WithCount("total_tasks") countResults, err := client.RunAggregationQuery(ctx, aggregationCountQuery) count := countResults["total_tasks"] countValue := count.(*datastorepb.Value) fmt.Printf("Number of results from query: %d\n", countValue.GetIntegerValue())
GQL
AGGREGATE COUNT(*) AS total OVER ( SELECT * AS total FROM tasks )
GQL은 다음과 같이 단순화된 count()
쿼리 형식을 지원합니다.
SELECT COUNT(*) AS total FROM tasks
이 예시에서는 total
의 선택적 별칭을 사용합니다.
이 단순화된 형식은 FROM
및 WHERE
절만 지원합니다. 자세한 내용은 GQL 참조를 확인하세요.
count()
집계에서는 쿼리의 모든 필터와 limit
절을 고려합니다. 예를 들어 다음 집계는 지정된 필터와 일치하는 항목 수를 반환합니다.
자바
Python
Go
aggregationCountQuery := datastore.NewQuery("Task"). FilterField("done", "=", true). NewAggregationQuery(). WithCount("total_tasks_done") countResults, err := client.RunAggregationQuery(ctx, aggregationCountQuery) count := countResults["total_tasks_done"] countValue := count.(*datastorepb.Value) fmt.Printf("Number of results from query: %d\n", countValue.GetIntegerValue())
GQL
AGGREGATE COUNT(*) OVER ( SELECT * FROM tasks WHERE is_done = false AND tag = 'house')
GQL은 다음과 같이 단순화된 count()
쿼리 형식을 지원합니다.
SELECT COUNT(*) AS total FROM tasks WHERE is_done = false AND tag = 'house'
이 예시에서는 total
의 선택적 별칭을 사용합니다.
이 단순화된 형식은 FROM
및 WHERE
절만 지원합니다. 자세한 내용은 GQL 참조를 확인하세요.
이 예시에서는 특정 값까지 계수하는 방법을 보여줍니다. 예를 들어 이 기능을 사용하여 특정 숫자에서 개수를 중지하고 사용자에게 해당 숫자를 초과했음을 알릴 수 있습니다.