Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gocql查询cassandra UDT?_Go_Cassandra_Gocql - Fatal编程技术网

如何使用gocql查询cassandra UDT?

如何使用gocql查询cassandra UDT?,go,cassandra,gocql,Go,Cassandra,Gocql,卡桑德拉表与UDT CREATE TYPE IF NOT EXISTS phone_type( code TEXT, phone TEXT, ); CREATE TABLE IF NOT EXISTS user_by_phone( user_id UUID, phone FROZEN<phone_type>, password TEXT, PRIMARY KEY (phone) ); gqcql查询 err := Session.Que

卡桑德拉表与UDT

CREATE TYPE IF NOT EXISTS phone_type(
   code TEXT,
   phone TEXT,
);

CREATE TABLE IF NOT EXISTS user_by_phone(
    user_id UUID,
    phone FROZEN<phone_type>,
    password TEXT,
    PRIMARY KEY (phone)
);
gqcql查询

err := Session.Query("SELECT user_id, password FROM user_by_phone WHERE phone=?;", phone).Scan(
    &user.UserID,
    &user.Password,
)
使用此代码,即使cassandra表中有记录,它仍返回not found Event。
如何使用gocql通过UDT进行查询?

尝试这样定义结构(在结构定义中使用
cql
而不是
json

根据这里的例子:

这对我起了作用:

    var id gocql.UUID
    var password string
    
    iter := session.Query("SELECT user_id, password FROM user_by_phone WHERE phone=?;", phone).Iter()
    for iter.Scan(&id, &password) {
        fmt.Println("Phone Record:", id, password)
    }
    if err := iter.Close(); err != nil {
        log.Fatal(err)
    }

尝试这样定义结构(在结构定义中使用
cql
而不是
json

根据这里的例子:

这对我起了作用:

    var id gocql.UUID
    var password string
    
    iter := session.Query("SELECT user_id, password FROM user_by_phone WHERE phone=?;", phone).Iter()
    for iter.Scan(&id, &password) {
        fmt.Println("Phone Record:", id, password)
    }
    if err := iter.Close(); err != nil {
        log.Fatal(err)
    }
    var id gocql.UUID
    var password string
    
    iter := session.Query("SELECT user_id, password FROM user_by_phone WHERE phone=?;", phone).Iter()
    for iter.Scan(&id, &password) {
        fmt.Println("Phone Record:", id, password)
    }
    if err := iter.Close(); err != nil {
        log.Fatal(err)
    }