我有一个 angularJS 前端,它使用 $resource 使用 HTTP 方法向我的 Go 服务器发送请求。我想在发送 PATCH 时更新现有的数据库条目。我需要向 GO 服务器提供多个数据字段。 angularJS 客户端应该如何发送数据,用什么格式?从 mgo doc 我发现下面的代码要更新。更新字段是否可以采用 Go 结构,该结构将从客户端接收的数据中解析并跳过空字段? change := mgo.Change{ Update: bson.M{"$inc": bson.M{"n": 1}}, Upsert: false, Remove: false, ReturnNew: true, } info, err = col.Find(M{"_id": id}).Apply(change, &doc) fmt.Println(doc.N)我计划将数据作为查询发送到的 angularjs 代码。 UpdateOneSchedule.update({bkresources:dbResources}, function(data){ //on success }, function(httpResponse){ //on error if(httpResponse.status === 409){ } });
1 回答

BIG阳
TA贡献1859条经验 获得超6个赞
是的,这是可能的。一个简单的例子是:
var myStruct struct {
Name string `json:"name" bson:"name,omitempty"`
Age int `json:"age" bson:"age"`
}
您将数据解析为 myStruct 并提供相同的对象进行更新。
change := mgo.Change{
Update: bson.M{"$inc": bson.M{"n": 1}, "$set": bson.M{"name": myStruct.Name}},
Upsert: false,
Remove: false,
ReturnNew: true,
}
info, err = col.Find(M{"_id": id}).Apply(change, &doc)
fmt.Println(doc.N)
,omitempty 将以与 JSON 相同的方式工作,这意味着,如果它为空,则不会被解析,例如:
myStruct.Name = ""
myStruct.Age = 23
col.Insert(myStruct)
这将创建以下 BSON 文档:
{
id: ObjectId("573da7dddd73171e42a84045"),
age: 23
}
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消