С веб-разработки с Go по Shiju Varghese, о способе обновления в драйвере MongoDB mgo
в GoКак сделать частичные и полные обновления на документе с использованием MgO в Go
Обновление документов
Метод обновления типа Collection позволяет вам обновлять существующие документы . Вот метод подпись методы Update:
func (c *Collection) Update(selector interface{}, update interface{}) error
Метод обновление находит один документ из коллекции, спички его с помощью прилагаемого документа селектора, и изменяет его на основе предоставленного документа обновления . Частичное обновление может быть выполнено с помощью ключевого слова «$ 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)}, }, })
Спасибо.