Získání vnořeného dokumentu z Mongo db pomocí Java ovladače

hlasů
3

Musím vytvořit graf objekt pro dokumenty v kolekci. Jsem schopen získat všechny páry klíč-hodnota. Zde je kód, který dělá, že:

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

Existuje nějaký jiný způsob, jak to mohu udělat, mám na mysli spíše jednoduchým způsobem. Díky předem

Položena 28/01/2011 v 07:31
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Pokud to váš případ užití umožňuje i stávající Java ORM mappers, jako morfium nefungují pro vás, můžete použít ReflectionDBObject. Pokud tomu tak není jste uvízl se svým přístupem, nejsou tam žádné zkratky.

Odpovězeno 27/06/2011 v 08:04
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more