【发布时间】:2020-08-25 00:38:08
【问题描述】:
我正在使用此处记录的 gocql 库:https://godoc.org/github.com/relops/cqlc/cqlc#Fetchable 并尝试在 golang 中编写一个 API 调用,该调用将询问我的数据库中满足特定字段的所有元素并返回元素总数回来。我知道当我在 Cassandra 界面中时,我可以使用调用 SELECT COUNT(*) from table1 WHERE ...; 其中 table1 是表名。我一直在阅读文档,我能找到的只是限制返回条目数量的限制函数。
例如,假设我在 Cassandra 中有一个在不同日期发生的事件的数据库表。我只想返回星期二发生的事件的数量,并且我想使用 gocql 来执行此操作。
目前我正在做类似的事情:
cx := cqlc.NewContext()
iter, err := cx.Select().
From(db.EVENTLOG).
Where(db.EVENTLOG.DAY.Eq(day).
Limit(10000).
Fetch(cass)
data, err = db.BindEventlog(iter)
BindEventLog 函数返回在“一天”发生的事件的数组,但同样,我只想要事件的数量,而不是事件本身。有没有办法在不遍历这个数组的情况下得到这个,因为无论如何我都会扔掉这个数组,所以让数据库给我整个数据数组真的很慢。
我是这方面的初学者,所以如果您需要更多信息,请询问,我试图尽可能具体。谢谢。
【问题讨论】:
-
我在 API 中根本看不到任何聚合支持。 =/