【问题标题】:Getting nested Document from mongo db using java Driver使用 java 驱动程序从 mongo db 获取嵌套文档
【发布时间】:2011-01-28 08:31:47
【问题描述】:

我需要为集合中的文档创建一个对象图。 我能够得到所有的键值对。这是执行此操作的代码:

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

有没有其他方法可以做到这一点,我的意思是一种相当简单的方法。 提前致谢

【问题讨论】:

  • 我认为你需要更好地解释问题是什么以及你想要做什么。
  • 您是否正在寻找要重构的已发布代码?还是您完全质疑这种方法?
  • @Tim 我要求一种全新的方法。

标签: java mongodb nested mongo-java


【解决方案1】:

如果您的用例允许并且现有的 Java ORM 映射器(例如 Morphia)不适合您,您可以使用 ReflectionDBObject。如果没有,你会坚持自己的方法,没有捷径可走。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-04
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    相关资源
    最近更新 更多