在golang中接受Cassandra的Set数据类型

时间:2014-03-11 01:13:24

标签: go cassandra

我在cassandra中有一个类型为set的列。 Usig gocql我想在golang代码中接受该列。所以接受应该是接受整个集合的变量的数据类型。

e.g:

err = session.Query("select product_list from category where category_id=?",key).Scan(&productIdList)

Product_list的类型为set。那么golang中productIdList的数据类型应该是什么?

1 个答案:

答案 0 :(得分:2)

对于Cassandra的集合类型,gocql默认使用切片或数组。

如果这不是您想要的,那么让您使用gocql.Marshaller和gocql.Unmarshaller接口定义自己的一个。

例如:

type Set map[string]bool

func (s Set) UnmarshalCQL(info TypeInfo, data []byte) error {
  /* code to unmarshal your set into a Go map. from cql results */
}

func (s Set) MarshalCQL(info TypeInfo) ([]byte, error) {
  /* code to marshal your set out of a go map for cql to use */
}

但这意味着您必须自己编写设置输出解析。