code: func (builder *Builder) Update(collection string, changes map[string]interface{}, cond c.Condition) (string, []interface{}) {
  	length := len(changes)
  
  	var buffer bytes.Buffer
  	var args = make([]interface{}, 0, length)
  
  	buffer.WriteString("UPDATE ")
  	buffer.WriteString(builder.config.EscapeChar)
  	buffer.WriteString(collection)
  	buffer.WriteString(builder.config.EscapeChar)
  	buffer.WriteString(" SET ")
  
  	curr := 0
  	for field, value := range changes {
  		buffer.WriteString(builder.config.EscapeChar)
  		buffer.WriteString(field)
  		buffer.WriteString(builder.config.EscapeChar)
  		buffer.WriteString("=")
  		buffer.WriteString(builder.ph())
  		args = append(args, value)
  
  		if curr < length-1 {
  			buffer.WriteString(",")
  		}
  
  		curr++
  	}
  
  	if s, arg := builder.where(cond); s != "" {
  		buffer.WriteString(" ")
  		buffer.WriteString(s)
  		args = append(args, arg...)
  	}
  
  	buffer.WriteString(";")
  
  	return buffer.String(), args
  }
docs: // Update generates query for update.