【发布时间】:2020-01-13 16:09:49
【问题描述】:
我正在使用 Go 和 Mongo 创建一个 REST api。我对这些语言还是很陌生。所以基本上,我调用这个函数来更新数据库中的现有数据。它实际上并没有更新数据库中的任何内容。
func UpdateCompanyEndpoint(response http.ResponseWriter, request *http.Request) {
response.Header().Set("content-type", "application/json")
params := mux.Vars(request)
name, _ := params["name"]
var company Company
_ = json.NewDecoder(request.Body).Decode(&company)
filter := bson.D{{"name", name}}
fmt.Println(name)
update := bson.D{{"$set", bson.D{{"application", company.Application}}}}
collection := client.Database("RESTful").Collection("companies")
doc := collection.FindOneAndUpdate(
context.Background(),
filter,
update,
nil)
fmt.Println(doc)
}
数据库如下所示:
[
{
"name": "Test1",
"application": "Test1"
},
{
"name": "Test2",
"application": "Test2"
},
{
"name": "Test3",
"application": "Test3"
}
]
我在 http://localhost:8080/update/Test2 上调用 put 方法:
{
"name": "Test2",
"application": "Test2update"
}
但是,它不会更新数据库中的任何内容。 这是代码:https://github.com/jasonkim615/internship-db/blob/master/main.go
【问题讨论】: