【问题标题】:Golang Rethinkdb nested filterGolang Rethinkdb 嵌套过滤器
【发布时间】:2018-01-24 21:27:49
【问题描述】:

我正在尝试对 Golang 中 RethinkDB 的嵌套对象的属性运行过滤器。但我确信我在这里遗漏了一些东西。

这是我得到的错误:

(func literal).Eq undefined (type func(gorethink.Term) gorethink.Term没有字段或方法Eq)

这是我的代码:

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)

更新 1

按照@icza 的建议进行更改后,程序构建良好。但我在运行时收到以下错误:

gorethink: 无法在 r.DB("uc_dev").Table("unverified_requests").Filter(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") })

【问题讨论】:

    标签: go rethinkdb gorethink rethinkdb-go


    【解决方案1】:

    一个错位的括号。而不是}.Eq(email)) 使用}).Eq(email)

    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)
    

    您尝试在传递给Map() 的函数文字参数上调用Eq()。显然不是gorethink.Term类型,而是gorethink.Map()的返回值是,所以在Map()的reutrn值上调用Eq(),也就是说把.Eq()放在结束方法调用@的括号后面987654333@.

    【讨论】:

    • 我试过了。但是现在我在运行它时收到此错误:gorethink: Cannot convert OBJECT to SEQUENCE in: r.DB("uc_dev").Table("unverified_requests").Filter(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") })
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多