2013-04-11 3 views
0

SQL 서버에서 MongoDB로 내 차원을 가져 오려고하는데, 이렇게 할 수는 있지만 시간이 많이 걸리는 차원마다 코드를 작성해야합니다. 코드의 일부 조각 :SQL 서버 차원에서 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); 

이동 방법에 대해 조언 해 줄 수 있습니까? 나는 그것을 해결 사전

감사 : 작업의 종류는 일반적으로 그것을 할 수 있도록 설계되었습니다, 당신에게 더 나은 성능과 관리 성을 제공 할 수있는 ETL 툴에 의해 수행

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);} 
+0

감사 Moacy. 데이터를 구조화하는 철학은 근본적으로 다릅니다. – Philipp

+0

코드 스 니펫에서 변수'r'은 정확히 무엇입니까? 일부 반복자, 나는 presssume을 반복하지만 정확히 iterating 무엇입니까? – Philipp

+0

ResultSet r = s.executeQuery(); – glaring

답변

0

. 당신은 문서 지향 데이터베이스에 관계형 데이터베이스를 위해 설계된 데이터베이스 스키마를 전송해서는 안

관련 문제