Golang Rethinkdb 嵌套过滤器
Golang Rethinkdb nested filter
我正在尝试 运行 对 Golang 中 RethinkDB 的嵌套对象 属性 进行筛选。但我确定我在这里遗漏了一些东西。
这是我遇到的错误:
(func literal).Eq undefined (type func(gorethink.Term) gorethink.Term has no field or method 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: 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") })
错位的括号。而不是 }.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
, but the return value of gorethink.Map()
类型,所以在 Map()
的返回值上调用 Eq()
,这意味着将 .Eq()
放在关闭方法调用的括号之后 Map()
.
我正在尝试 运行 对 Golang 中 RethinkDB 的嵌套对象 属性 进行筛选。但我确定我在这里遗漏了一些东西。
这是我遇到的错误:
(func literal).Eq undefined (type func(gorethink.Term) gorethink.Term has no field or method 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: 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") })
错位的括号。而不是 }.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
, but the return value of gorethink.Map()
类型,所以在 Map()
的返回值上调用 Eq()
,这意味着将 .Eq()
放在关闭方法调用的括号之后 Map()
.