英文:
Unable to run filter on RethinkDB in Golang
问题
我正在尝试在Golang中使用GoRethink
库对RethinkDB数据的嵌套属性运行过滤器。
但是,我遇到了这个错误:
> gorethink: 无法将OBJECT转换为SEQUENCE: 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") })
这是我的代码:
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)
英文:
I am trying to run a filter on a nested property of RethinkDB data in Golang using GoRethink
library.
But, I am getting this error:
> 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") })
Here is my code:
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
得分: 1
基本上,这是我需要做的事情:
result, err = db.Table("unverified_requests").Filter(func(uu r.Term) r.Term {
return uu.Field("user").Field("email").Eq(email)
}).Run(session)
英文:
Basically, here is what I needed to do:
result, err = db.Table("unverified_requests").Filter(func(uu r.Term) r.Term {
return uu.Field("user").Field("email").Eq(email)
}).Run(session)
答案2
得分: 0
你正在尝试对单个对象进行映射。也许这样可以工作:
db.Table("unverified_requests").Filter(r.Row.Field("user").Field("email").Eq(email)).Run(session)
英文:
You're trying to map over a single object. Maybe this would work:
db.Table("unverified_requests").Filter(r.Row.Field("user").Field("email").Eq(email)).Run(session)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论