Обновление mgo $inc не работает

Я пытаюсь обновлять количество просмотров каждый раз, когда посещается определенный блог.

type Blog struct {
    ID          bson.ObjectId `bson:"_id,omitempty"`
    Topic       string
    TimeCreated string
    Views       int
    Sections    []Section
}
type Section struct {
    Name    string
    Content string
}

и контроллер

func Blogs(w http.ResponseWriter, r *http.Request) {
    id := r.FormValue("id")
    if id != "" {
        blog := model.Blog{}
        colQuerier := bson.M{"_id": bson.ObjectIdHex(id)}

        e := mCollection.Find(colQuerier).One(&blog)
        if e != nil {
            console.PrintError(e)
            return
        }
        views := blog.Views
        fmt.Println(views)
        change := bson.M{"$inc": bson.M{"Views": 1}}

        e = mCollection.Update(colQuerier, change)
        if e != nil {
            console.PrintError(e)
        }

        jsonData, _ := json.Marshal(blog)
        fmt.Fprintf(w, string(jsonData))
     }
}

//консоль — это внутренний пакет

код извлекает содержимое, но не увеличивает количество просмотров


person Shiva Kishore    schedule 08.01.2017    source источник


Ответы (1)


Я нашел ответ, хотя у модели были «Просмотры». В коллекции это были «просмотры», поэтому он продолжал увеличивать «просмотры», которые никогда не появлялись, потому что golang искал «просмотры».

так что рабочий код

change := bson.M{"$inc": bson.M{"views": 1}}

person Shiva Kishore    schedule 08.01.2017
comment
получил непризнанное сценическое имя конвейера $inc... Какой драйвер mongo вы использовали? - person DevAndroid; 29.12.2018