Получение вложенного документа из mongo db с помощью драйвера java - PullRequest
3 голосов
/ 28 января 2011

Мне нужно создать граф объектов для документов в коллекции. Я могу получить все пары ключ-значение. Вот код, который делает это:

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

Есть ли другой способ, которым я могу это сделать, я имею в виду довольно простой способ. Заранее спасибо

1 Ответ

0 голосов
/ 27 июня 2011

Если ваш сценарий использования позволяет это и существующие средства отображения Java ORM, такие как Morphia, не работают, вы можете использовать ReflectionDBObject.Если вы не застряли с вашим подходом, ярлыков нет.

...