无法在Golang中的RethinkDB上运行过滤器

时间:2016-12-13 00:59:55

标签: go rethinkdb rethinkdb-go gorethink

我正在尝试使用GoRethink库在Golang上的RethinkDB数据的嵌套属性上运行过滤器。

但是,我收到了这个错误:

  

gorethink:无法将OBJECT转换为SEQUENCE:r.DB(" uc_dev")。表(" unverified_requests")。过滤器(func(var_5 r.Term)r .Term {return var_5.Field(" user")。Map(func(var_6 r.Term)r.Term {return var_6.Field(" email")})。Eq( " myemail@gmail.com")})

这是我的代码:

type User struct {
    Id        string `json:"id,omitempty"`
    FirstName string `json:"firstName,omitempty"`
    LastName  string `json:"lastName,omitempty"`
    Email     string `json:"email,omitempty"`
    Password  string `json:"password,omitempty"`
    Salt      string `json:"salt,omitempty"`
}

type UnverifiedUserRequest struct {
    Id    string `json:"id,omitempty"`
    Token string `json:"token,omitempty"`
    User  User   `json:"user,omitempty"`
}

db.Table("unverified_requests").Filter(func(row r.Term) r.Term {
    return row.Field("user").Map(func(user r.Term) r.Term {
        return user.Field("email")
    }).Eq(email)
}).Run(session)

2 个答案:

答案 0 :(得分:0)

基本上,这就是我需要做的事情:

result, err = db.Table("unverified_requests").Filter(func(uu r.Term) r.Term {
    return uu.Field("user").Field("email").Eq(email)
}).Run(session)

答案 1 :(得分:0)

您正在尝试映射单个对象。也许这会奏效:

db.Table("unverified_requests").Filter(r.Row.Field("user").Field("email").Eq(email)).Run(session)