diff --git a/handler.go b/handler.go index fb2961b..d8baca6 100644 --- a/handler.go +++ b/handler.go @@ -347,7 +347,7 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc { } */ - // apply newM on orgM and record changes for db update + // apply newM on orgM and record changes for db update, only first level for now changes := bson.M{} newMStruct := reflect.Indirect(reflect.ValueOf(newM)) orgMStruct := reflect.Indirect(reflect.ValueOf(orgM)) @@ -355,7 +355,9 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc { field := newMStruct.Field(i) fieldT := newMStruct.Type().Field(i) - if field.Kind() == reflect.Ptr && !field.IsNil() { + if (field.Kind() == reflect.Ptr || field.Kind() == reflect.Slice) && + !field.IsNil() { + // apply naming conventions of mgo for changeset tag := fieldT.Tag.Get("bson") if tag == "" && !strings.Contains(string(fieldT.Tag), ":") {