gpt4 book ai didi

mongodb - Golang,mgo 为用户更新详细信息

转载 作者:数据小太阳 更新时间:2023-10-29 03:27:55 25 4
gpt4 key购买 nike

我在更新 mongo 数据库上的用户时遇到了一些问题。基本上我想通过用户名选择用户而不是编辑其详细信息。我正在使用 Gorilla Mux 和 mgo 连接 MongoDB。

代码如下:

func ViewUserHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
username := vars["username"]
session, err := mgo.Dial("mongodb://DATABASE_URL")

if err != nil {
panic(err)
}

defer session.Close()
session.SetMode(mgo.Monotonic, true)
c := session.DB("studnet").C("user")

result := Person{}
// get the user_id using a hidden field when clicked using javascript
err = c.Find(bson.M{"name": username}).One(&result)
if err != nil {
log.Fatal(err)
}

if r.Method == "GET" {
t, _ := template.ParseFiles("profile.html")
t.Execute(w, result)
}
// update the user profile details
if r.Method == "POST" {
r.ParseForm()

// TODO : update the user
selectedUser := bson.M{"name": username}
updatedUser := bson.M{"$set": bson.M{
"Name": r.Form["username"][0],
"Gender": r.Form["gender"][0],
"Age": r.Form["age"][0],
"CreatedAt": time.Now(),
}}
err = c.Update(selectedUser, updatedUser)

if err != nil {
panic(err)
}
http.Redirect(w, r, "/view/"+username, 301)
}
}

最佳答案

好吧,我至少看到了一个问题,那就是区分大小写的查询。因此,如果您的结构在 json 中使用小写键,则必须使用小写键。

// This shoud match 
// against the "Name" property
selectedUser := bson.M{"Name": username}

updatedUser := bson.M{"$set": bson.M{
"Name": r.Form["username"][0],
"Gender": r.Form["gender"][0],
"Age": r.Form["age"][0],
"CreatedAt": time.Now(),
}}

关于mongodb - Golang,mgo 为用户更新详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com