mgo $ inc更新无效

时间:2017-01-08 13:32:35

标签: go mgo

我每次访问特定博客时都会尝试更新观看次数

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))
     }
}

// console是一个内部包

代码获取内容但不增加视图

1 个答案:

答案 0 :(得分:1)

我找到了答案, 即使该模型有'观点'。在集合中它是'观点'所以它不断增加'观点',从未出现,因为golang正在寻找'观点'。

所以工作代码是

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