我在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的数据类型应该是什么?
答案 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 */
}
但这意味着您必须自己编写设置输出解析。