Sql server 如何在mongoDB中从SQL server维度获取数据

Sql server 如何在mongoDB中从SQL server维度获取数据,sql-server,mongodb,Sql Server,Mongodb,我正在尝试将我的维度从SQL server导入MongoDB,我可以这样做,但是我必须为每个维度编写代码,这有点费时。部分代码: Mongo mongo = new Mongo(); DB db = mongo.getDB("Nelly"); DBCollection facil = db.getCollection("Facilities"); while (r.next()) { BasicDBObject facObj = new BasicDBObject(); String

我正在尝试将我的维度从SQL server导入MongoDB,我可以这样做,但是我必须为每个维度编写代码,这有点费时。部分代码:

Mongo mongo = new Mongo();
DB db = mongo.getDB("Nelly");
DBCollection facil = db.getCollection("Facilities");   

while (r.next()) {
BasicDBObject facObj = new BasicDBObject();

String faccKey = (r.getString("dim_Facilities_dKey"));
if (faccKey != null && !faccKey.trim().isEmpty()
&& faccKey.length() != 0)
facObj.append("dKey", faccKey);

facil.insert(facObj);
但是我想通过某种循环和列表更快地完成它,但我不知道如何解决它,我已经尝试了所有的方法

while(r.next()){

for (int i = 1; i < columnCount + 1; i++ ) {

HashMap<String, ArrayList<String>> hashmap =  new HashMap<String, ArrayList<String>>();
ArrayList<String> arr=new ArrayList<String>();       
arr.add(r.getString(i));


BasicDBObject facObj = new BasicDBObject();
String name = rsmd.getColumnName(i);
int varde=1;
String data =r.getString(varde);
varde++;
arr.add(data);

hashmap.put(name, arr);

facObj.append(name, hashmap.values().toString());
facil.insert(facObj);
while(r.next()){
对于(int i=1;i
有人能给我一些建议,告诉我如何继续前进吗

提前谢谢

我解决了它:

ResultSet r = s.executeQuery();
ResultSetMetaData rsmd = s.getMetaData();
int columnCount = rsmd.getColumnCount();

while (r.next()) {
BasicDBObject facObj = new BasicDBObject();
for (int i = 1; i < columnCount + 1; i++) {

String name = rsmd.getColumnName(i);

String faccKey = (r.getString(i));
if (faccKey != null && !faccKey.trim().isEmpty() && faccKey.length()!= 0)
facObj.append(name, faccKey); 

}
facil.insert(facObj);}  
ResultSet r=s.executeQuery();
ResultSetMetaData rsmd=s.getMetaData();
int columnCount=rsmd.getColumnCount();
while(r.next()){
BasicDBObject facObj=新的BasicDBObject();
对于(int i=1;i
这类任务通常由ETL工具完成,ETL工具就是专门为完成这类任务而设计的,它可以为您提供更好的性能和可管理性

问候,,
Moacy

您不应该将为关系数据库设计的数据库模式转换为面向文档的数据库。它们构造数据的原理是根本不同的。代码片段中的变量
r
到底是什么?我按了一些迭代器,但它到底在迭代什么?ResultSet r=s.executeQuery();Connection connect=DriverManager.getConnection(connectionURL);StringBuilder facilities=new StringBuilder();facilities.append(“SELECT*FROM dbo.dim_facilities”);PreparedStatement s s=connect.prepareStatement(facilities.toString());r是一个结果集,它会迭代facilities维度中的所有值(我想,我希望如此)