gocql 如何遍历来自选择查询的数据

时间:2021-06-16 15:35:56

标签: go cassandra gocql

我一直在寻找一种从 cassandra 中选择数据并将其加载到数组的方法,因为我想处理需要从上一个或下一个索引获取数据的系列数据。 我发现的是一个迭代器,文档中的所有示例都让它走到下一个

谢谢

1 个答案:

答案 0 :(得分:1)

<块引用>

正在寻找一种从 cassandra 中选择数据并将其加载到数组中的方法

听起来很简单。首先,确保您正在连接:

//connect
cluster := gocql.NewCluster(hostname)

if len(username) > 0 && len(password) > 0 {
    cluster.Authenticator = gocql.PasswordAuthenticator{Username: username,Password: password}
}

cluster.ProtoVersion = protocol_version
cluster.Consistency = consistency
session, _ := cluster.CreateSession()
defer session.Close()

接下来,我将查询 system.peers 表,遍历结果集并使用 append 将节点存储在数组中。

var peer string
var peers []string

localCql := "SELECT peer FROM system.peers"

iter := session.Query(localCql).Iter()
for iter.Scan(&peer) {
    peers = append(peers, peer)
}
if err := iter.Close(); err != nil {
    log.Fatal(err)
}

fmt.Printf("peers = %s\n",peers)

并运行它产生数组的内容:

» ./testCassandra 1.1.1.4 -u aploetz -p flynnLives
peers = [1.1.1.5 1.1.1.6 1.0.1.1 1.0.1.3 1.0.1.2]
相关问题