3
컬렉션의 문서에 대한 객체 그래프를 만들어야합니다. 모든 키 - 값 쌍을 가져올 수 있습니다. 다음은이를 수행하는 코드입니다.Java 드라이버를 사용하여 mongo db에서 중첩 문서 얻기
import com.mongodb.*;
import java.util.*;
public class GetKeyValuePair {
public static void print(DBObject doc) {
Set<String> allKeys = doc.keySet();
Iterator<String> it = allKeys.iterator();
while (it.hasNext()) {
String temp = it.next();
System.out.print(temp + "-");
if (doc.get(temp) instanceof BasicDBObject) {
System.out.println("\n");
print((DBObject) doc.get(temp));
} else {
System.out.println(doc.get(temp));
}
}
}
public static void main(String args[]) {
try {
Mongo m = new Mongo();
DB db = m.getDB("test");
Set<String> colls = db.getCollectionNames();
DBCollection coll = db.getCollection("first");
DBObject doc = new BasicDBObject();
DBCursor cur = coll.find();
Set<String> allKeys;
Iterator<String> it;
while (cur.hasNext()) {
doc = cur.next();
allKeys = doc.keySet();
it = allKeys.iterator();
print(doc);
System.out.println("-------");
}
} catch (UnknownHostException e) {
System.out.println(e.toString());
} catch (MongoException.DuplicateKey e) {
System.out.println("Exception Caught" + e);
}
}}
내가 할 수있는 다른 방법이 있습니다. 오히려 간단한 방법입니다. 미리 감사드립니다.
나는 문제가 무엇인지 그리고 무엇을하려고하는지 더 잘 설명해야한다고 생각합니다. – Theo
게시 된 코드를 다시 고려하고 싶습니까? 아니면 접근법 전체에 의문을 제기하고 있습니까? –
@Tim 전적으로 새로운 접근 방식을 요구하고있었습니다. –