2016-08-02 64 views
0

我正在尝试使用Revel for Go来构建API端点。mgo.v2狂欢 - 如何从json收集集合中的所有数据?

我的模型/ models.go看起来是这样的 -

type Category struct { 
Name string  `bson:"name"` 
Slug string  `bson:"slug"`} 

func GetCategories(s *mgo.Session) *Category { 
var results []Category 
Collection(s).Find(nil).All(&results) 
return results} 

我控制器/ book.go看起来是这样的 -

type Category struct { 
*revel.Controller 
revelbasic.MongoController} 

func (c Category) Categories() revel.Result { 
b := models.GetCategories(c.MongoSession) 

return c.RenderJson(b)} 

我可以这样来配置我的conf /路线 -

GET /categories Book.Categories 

当我运行代码,我得到这个错误 -

cannot use results (type []Category) as type *Category in return argument

我知道我在做数据库查询时出错了。 请帮忙!

回答

0

代码中的错误是因为函数GetCategories的返回值声明与实际返回值之间的类型不匹配。要修复,请更改返回类型以返回一部分结果:

func GetCategories(s *mgo.Session) []Category { 
    var results []Category 
    Collection(s).Find(nil).All(&results) 
    return results 
} 
+0

谢谢!我正在玩弄代码,稍后写完,现在就看到你的答案!谢谢! –