我有一個 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 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消