2016-12-13 19 views
0

我試圖在使用GoRethink庫的Golang中對RethinkDB數據的嵌套屬性運行篩選器。無法在Golang中的RethinkDB上運行篩選器

但是,我得到這個錯誤:

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("[email protected]") })

這裏是我的代碼:

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

我不是rethinkdb專家,但它就像你使用一個對象上的地圖功能在我看來,但它被設計成序列的每個元素,這是工作一個有序的集合。這只是一個猜測,但我認爲你需要'row.Field(「user」)。Field(「email」)' – nothingmuch

回答

0

基本上,這裏是我需要做的:

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

你」重新嘗試映射一個對象。也許這會工作:

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