2016-08-02 1 views
0

Я пытаюсь построить конечную точку API, используя Revel for Go.Revel with 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

Спасибо! Я играл с кодом и написал именно это позже и увидел ваш ответ прямо сейчас! Спасибо! –

Смежные вопросы