從轉到Web開發由石咀Varghese表示一個文件,關於MongoDB的驅動mgo
更新方法如何去做部分和全部更新使用氧化鎂圍棋
更新文檔
集合類型的更新方法允許您 更新現有文檔。這裏是 更新方法的方法簽名:
func (c *Collection) Update(selector interface{}, update interface{}) error
Update方法從集合找到一個單一的文件,與所提供的選擇文件符合 它,修改它基於的 提供更新文檔。部分更新可以通過在更新文檔中使用 關鍵字「$ set」來完成。
代碼8-14更新現有文檔。
err := c.Update(bson.M{"_id": id}, bson.M{"$set": bson.M{ "description": "Create open-source projects", "tasks": []Task{ Task{" Evaluate Negroni Project", time.Date(2015, time.August, 15, 0, 0, 0, 0, time.UTC)}, Task{" Explore mgo Project", time.Date(2015, time.August, 10, 0, 0, 0, 0, time.UTC)}, Task{" Explore Gorilla Toolkit", time.Date(2015, time.August, 10, 0, 0, 0, 0, time.UTC)}, }, }})
對字段的描述和任務執行部分更新。 Update方法找到具有提供的_id值的文檔,並根據提供的文檔修改字段。
該示例是部分更新。它使用兩級嵌套bson.M
創建update interface{}
。部分更新是否總是使用這樣的兩級嵌套bson.M
?
是否完全更新使用一個級別bson.M
,如
err := c.Update(bson.M{"_id": id}, bson.M{ "description": "Create open-source projects", "tasks": []Task{ Task{" Evaluate Negroni Project", time.Date(2015, time.August, 15, 0, 0, 0, 0, time.UTC)}, Task{" Explore mgo Project", time.Date(2015, time.August, 10, 0, 0, 0, 0, time.UTC)}, Task{" Explore Gorilla Toolkit", time.Date(2015, time.August, 10, 0, 0, 0, 0, time.UTC)}, }, })
感謝。