首页 > 解决方案 > Java解析MongoDB文件的最佳方法

问题描述

所以,我是这样读的MongoDB

        mongo = new MongoClient("localhost", 27017);
        // Accessing the database
        MongoDatabase database = mongo.getDatabase("myDb");
        MongoCollection<Document> collection = database.getCollection("searchresults");

        // Getting the iterable object
        FindIterable<Document> iterDoc = collection.find();
        int i = 1;

        // Getting the iterator
        Iterator it = iterDoc.iterator();

        while (it.hasNext()) {
            System.out.println(it.next());
            i++;
        }
    }

正如你所看到的,每一行都有几列:Title等等。所以,当我迭代时myDB,我想通过它的值来解析每一行,而不是全部放在一行中。

有什么建议么?

标签: javamongodb

解决方案


您可以尝试读取 Document 结构,然后在每个条目上运行另一个循环。这将在自己的行上给出每个值。

FindIterable<Document> iterDoc = database.getCollection("").find();
for(Document doc : iterDoc) {
    for(Map.Entry<String, Object> entry : doc.entrySet()) {
        System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue());
    }
}

如果您只需要某些键,请在查找查询中使用投影


推荐阅读