diff --git a/const.go b/const.go index 8122113..98b051d 100644 --- a/const.go +++ b/const.go @@ -1,3 +1,3 @@ package dorm -const Version = "1.0.40" +const Version = "1.0.41" diff --git a/mongo_database.go b/mongo_database.go index af7d3ee..c285ace 100644 --- a/mongo_database.go +++ b/mongo_database.go @@ -42,18 +42,27 @@ func (c *MongoClient) Model(value interface{}) *MongoCollectionOptions { var collectionOptions *MongoCollectionOptions val := reflect.ValueOf(value) - if methodValue := val.MethodByName("DatabaseName"); methodValue.IsValid() { - databaseName := methodValue.Call(nil)[0].String() + + methodDatabaseNameValue := val.MethodByName("DatabaseName") + if methodDatabaseNameValue.IsValid() { + databaseName := methodDatabaseNameValue.Call(nil)[0].String() databaseOptions = c.Database(databaseName) } else { databaseOptions = c.Database(c.configDatabaseName) } - if methodValue := val.MethodByName("CollectionName"); methodValue.IsValid() { - collectionName := methodValue.Call(nil)[0].String() + methodCollectionNameValue := val.MethodByName("CollectionName") + if methodCollectionNameValue.IsValid() { + collectionName := methodCollectionNameValue.Call(nil)[0].String() collectionOptions = databaseOptions.Collection(collectionName) } else { - panic(NoConfigCollectionName) + methodTableNameValue := val.MethodByName("TableName") + if methodTableNameValue.IsValid() { + collectionName := methodTableNameValue.Call(nil)[0].String() + collectionOptions = databaseOptions.Collection(collectionName) + } else { + panic(NoConfigCollectionName) + } } return collectionOptions diff --git a/mongo_session_database.go b/mongo_session_database.go index d040a1c..ff26f96 100644 --- a/mongo_session_database.go +++ b/mongo_session_database.go @@ -33,18 +33,27 @@ func (cs *MongoSessionOptions) Model(value interface{}) *MongoSessionCollectionO var sessionCollectionOptions *MongoSessionCollectionOptions val := reflect.ValueOf(value) - if methodValue := val.MethodByName("DatabaseName"); methodValue.IsValid() { - databaseName := methodValue.Call(nil)[0].String() + + methodDatabaseNameValue := val.MethodByName("DatabaseName") + if methodDatabaseNameValue.IsValid() { + databaseName := methodDatabaseNameValue.Call(nil)[0].String() sessionDatabaseOptions = cs.Database(databaseName) } else { sessionDatabaseOptions = cs.Database(cs.configDatabaseName) } - if methodValue := val.MethodByName("CollectionName"); methodValue.IsValid() { - collectionName := methodValue.Call(nil)[0].String() + methodCollectionNameValue := val.MethodByName("CollectionName") + if methodCollectionNameValue.IsValid() { + collectionName := methodCollectionNameValue.Call(nil)[0].String() sessionCollectionOptions = sessionDatabaseOptions.Collection(collectionName) } else { - panic(NoConfigCollectionName) + methodTableNameValue := val.MethodByName("TableName") + if methodTableNameValue.IsValid() { + collectionName := methodTableNameValue.Call(nil)[0].String() + sessionCollectionOptions = sessionDatabaseOptions.Collection(collectionName) + } else { + panic(NoConfigCollectionName) + } } return sessionCollectionOptions