gpt4 book ai didi

go - 使用 gocql 将用户定义类型的数组插入 Cassandra

转载 作者:IT王子 更新时间:2023-10-29 02:08:34 26 4
gpt4 key购买 nike

我在 Cassandra 中有一个 UDT,我有一个表,其架构中包含这些 UDT 的数组。这是一个示例:

CREATE TYPE keyspace.test_type(
x float,
y float)

在我的架构中我有

 CREATE TABLE test_table(
key text,
test_array list<FROZEN <test_type>>,
PRIMARY KEY (key))

在我的 go 包中,我构建了一个结构:

type Test_type struct{
x float32
y float32
}

然后我有一个函数,它基本上返回这个 test_type 的列表:[]test_type,我们称它为 my_array

当我尝试像这样使用 gocql 进行插入时:

 err := gocql.Session.Query('INSERT into test_table (key,test_array)
VALUES (?,?)', 'key', my_array).Exec()

我得到了一堆空值而不是我的数组。基本上 test_type 没有正确映射到我创建的 UDT 是我的假设。

基本上我的问题是如何将结构映射到 udt,以便正确识别类型。 .

最佳答案

也许这并不重要,但我已经阅读了 https://docs.datastax.com/en/cql/3.3/cql/cql_reference/collection_type_r.html它不是

CREATE TABLE test_table(
key text,
test_array list<FROZEN test_type>>,
PRIMARY KEY (key))

但是

CREATE TABLE test_table(
key text,
test_array list<FROZEN <test_type>>,
PRIMARY KEY (key))

表的正确定义。我没有办法尝试你的代码,告诉我它是否改变了什么。

我读过的另一件事是 Update a collection type of a custom type in cassandra我认为您应该在 Cassandra 中定义您的自定义类型,因为您有一个自定义类型列表。

关于go - 使用 gocql 将用户定义类型的数组插入 Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52844147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com