diff --git a/backend/src/main/java/io/dataease/dto/datasource/MongodbConfiguration.java b/backend/src/main/java/io/dataease/dto/datasource/MongodbConfiguration.java index 97afde5cd9..a396a5bca8 100644 --- a/backend/src/main/java/io/dataease/dto/datasource/MongodbConfiguration.java +++ b/backend/src/main/java/io/dataease/dto/datasource/MongodbConfiguration.java @@ -12,13 +12,14 @@ public class MongodbConfiguration extends JdbcConfiguration { private String connectionType; private String extraParams = "rebuildschema=true"; - public String getJdbc() { - if(StringUtils.isEmpty(extraParams.trim())){ + public String getJdbc(String dsId) { + if(StringUtils.isEmpty(extraParams.trim()) && StringUtils.isEmpty(dsId)){ return "jdbc:mongodb://HOSTNAME:PORT/DATABASE" .replace("HOSTNAME", getHost().trim()) .replace("PORT", getPort().toString().trim()) .replace("DATABASE", getDataBase().trim()); }else { + this.extraParams = StringUtils.isEmpty(dsId) ? getExtraParams().trim() : getExtraParams().trim() + "&schema=" + dsId +".xml"; return "jdbc:mongodb://HOSTNAME:PORT/DATABASE?EXTRA_PARAMS" .replace("HOSTNAME", getHost().trim()) .replace("PORT", getPort().toString().trim()) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index f2bd003b0e..cb56f3e269 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -467,7 +467,7 @@ public class JdbcProvider extends DatasourceProvider { username = mongodbConfiguration.getUsername(); password = mongodbConfiguration.getPassword(); driver = mongodbConfiguration.getDriver(); - jdbcurl = mongodbConfiguration.getJdbc(); + jdbcurl = mongodbConfiguration.getJdbc(datasourceRequest.getDatasource().getId()); break; case redshift: RedshiftConfigration redshiftConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), RedshiftConfigration.class); @@ -566,7 +566,7 @@ public class JdbcProvider extends DatasourceProvider { case mongo: MongodbConfiguration mongodbConfiguration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MongodbConfiguration.class); dataSource.setDriverClassName(mongodbConfiguration.getDriver()); - dataSource.setUrl(mongodbConfiguration.getJdbc()); + dataSource.setUrl(mongodbConfiguration.getJdbc(datasourceRequest.getDatasource().getId())); jdbcConfiguration = mongodbConfiguration; break; case redshift: