陶醉于mgo.v2 - 如何将集合中的所有数据作为json返回?

时间:2016-08-02 10:35:26

标签: go bson mgo revel

我正在尝试使用Revel for Go构建API端点。

我的模特/模特.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 / routes -

GET /categories Book.Categories

当我运行代码时,我收到此错误 -

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

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

1 个答案:

答案 0 :(得分:0)

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

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