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

Revel with mgo.v2 - How to return all data from a collection as json?

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

我的 models/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}

我的 controllers/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

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

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

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